# GLMakie and Plots fail to precompile under Julia 1.8.4

**URL:** <https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087>\
**Category:** General Usage\
**Tags:** precompilation, update, plots, glmakie\
**Created:** [December 24, 2022, 2:09pm UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087 "2022-12-24T14:09:27Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![Shayan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shayan/32/33025_2.png) [@Shayan](https://discourse.julialang.org/u/Shayan)\
**Post date:** [December 26, 2022, 11:52am UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/21 "2022-12-26T11:52:47Z")

</div>

> [@giordano](#):
>
> do you have the file

I run Julia regularly (not as administrator):

```julia
julia> using CompilerSupportLibraries_jll

julia> joinpath(CompilerSupportLibraries_jll.artifact_dir, "bin", "libssp-0.dll")
"C:\\Users\\Shayan\\.julia\\juliaup\\julia-1.8.4+0.x64.w64.mingw32\\bin\\libssp-0.dll"

julia> using CompilerSupportLibraries_jll, Libdl

julia> dlopen(joinpath(CompilerSupportLibraries_jll.artifact_dir, "bin", "libssp-0.dll"))
Ptr{Nothing} @0x00007ffa93990000

```

> [@giordano](#):
>
> Also, do note that `MSIMG32.dll` is a Windows system library, if it can’t be found we can do next to nothing about it.

How? This issue happened to me just after updating julia to 1.8.4 using Juliaup. before this, I was able to use many graphical packages!! What happened then?

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [December 26, 2022, 8:30pm UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/22 "2022-12-26T20:30:01Z")

</div>

> [@Shayan](#):
>
> How? This issue happened to me just after updating julia to 1.8.4 using Juliaup. before this, I was able to use many graphical packages!! What happened then?

Clearly there is some change in 1.8.4 that caused this to happen for some people. The point of this discussion is to try to pin-point exactly what that was (and if there is some workaround to fix it).

---

<div class="post-metadata">

**Author:** ![Shayan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shayan/32/33025_2.png) [@Shayan](https://discourse.julialang.org/u/Shayan)\
**Post date:** [December 26, 2022, 8:43pm UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/23 "2022-12-26T20:43:17Z")

</div>

Thank you. I got nervous by

> we can do next to nothing about it.

I installed Julia 1.8.4 from the official website (and uninstalled Juliaup), and now I can use graphical packages as before.

**Update:**  
I can use `Plots` with `GR` backend, but not `PyPlot` in the fresh installation of Julia 1.8.4:

> **see the error**
>
> ```julia
> [Info: Precompiling PyPlot [d330b81b-6aea-500a-939a-2ce795aea3ee]
> ERROR: LoadError: ArgumentError: Path to conda environment is not valid: C:/Users/Shayan/Anaconda3/envs/3.11
> Stacktrace:
> [1] prefix(path::String)
> @ Conda C:\Users\Shayan\.julia\packages\Conda\x2UxR\src\Conda.jl:42
> [2] top-level scope
> @ C:\Users\Shayan\.julia\packages\Conda\x2UxR\src\Conda.jl:47
> [3] include
> @ .\Base.jl:419 [inlined]
> [4] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt64}}, source::String)
> @ Base .\loading.jl:1554
> [5] top-level scope
> @ stdin:1
> in expression starting at C:\Users\Shayan\.julia\packages\Conda\x2UxR\src\Conda.jl:1
> in expression starting at stdin:1
> ERROR: LoadError: Failed to precompile Conda [8f4d0f93-b110-5947-807f-2305c1781a2d] to C:\Users\Shayan\.julia\compiled\v1.8\Conda\jl_6FFD.tmp.
> Stacktrace:
> [1] error(s::String)
> @ Base .\error.jl:35
> [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
> @ Base .\loading.jl:1707
> [3] compilecache
> @ .\loading.jl:1651 [inlined]
> [4] _require(pkg::Base.PkgId)
> @ Base .\loading.jl:1337
> [5] _require_prelocked(uuidkey::Base.PkgId)
> @ Base .\loading.jl:1200
> [6] macro expansion
> @ .\loading.jl:1180 [inlined]
> [7] macro expansion
> @ .\lock.jl:223 [inlined]
> [8] require(into::Module, mod::Symbol)
> @ Base .\loading.jl:1144
> [9] include
> @ .\Base.jl:419 [inlined]
> [10] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt64}}, source::String)
> @ Base .\loading.jl:1554
> [11] top-level scope
> @ stdin:1
> in expression starting at C:\Users\Shayan\.julia\packages\PyCall\ygXW2\src\PyCall.jl:1
> in expression starting at stdin:1
> ERROR: LoadError: Failed to precompile PyCall [438e738f-606a-5dbb-bf0a-cddfbfd45ab0] to C:\Users\Shayan\.julia\compiled\v1.8\PyCall\jl_6D6D.tmp.
> Stacktrace:
> [1] error(s::String)
> @ Base .\error.jl:35
> [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
> @ Base .\loading.jl:1707
> [3] compilecache
> @ .\loading.jl:1651 [inlined]
> [4] _require(pkg::Base.PkgId)
> @ Base .\loading.jl:1337
> [5] _require_prelocked(uuidkey::Base.PkgId)
> @ Base .\loading.jl:1200
> [6] macro expansion
> @ .\loading.jl:1180 [inlined]
> [7] macro expansion
> @ .\lock.jl:223 [inlined]
> [8] require(into::Module, mod::Symbol)
> @ Base .\loading.jl:1144
> [9] include
> @ .\Base.jl:419 [inlined]
> [10] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt64}}, source::String)
> @ Base .\loading.jl:1554
> [11] top-level scope
> @ stdin:1
> in expression starting at C:\Users\Shayan\.julia\packages\PyPlot\NsAWt\src\PyPlot.jl:2
> in expression starting at stdin:1
> ERROR: Failed to precompile PyPlot [d330b81b-6aea-500a-939a-2ce795aea3ee] to C:\Users\Shayan\.julia\compiled\v1.8\PyPlot\jl_6C25.tmp.
> Stacktrace:
> [1] error(s::String)
> @ Base .\error.jl:35
> [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
> @ Base .\loading.jl:1707
> [3] compilecache
> @ .\loading.jl:1651 [inlined]
> [4] _require(pkg::Base.PkgId)
> @ Base .\loading.jl:1337
> [5] _require_prelocked(uuidkey::Base.PkgId)
> @ Base .\loading.jl:1200
> [6] macro expansion
> @ .\loading.jl:1180 [inlined]
> [7] macro expansion
> @ .\lock.jl:223 [inlined]
> [8] require(into::Module, mod::Symbol)
> @ Base .\loading.jl:1144
> [9] top-level scope
> @ C:\Users\Shayan\.julia\packages\Plots\M4dfL\src\backends.jl:810
> 
> ```

But, all safe on Julia 1.8.3

---

<div class="post-metadata">

**Author:** ![mkoculak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkoculak/32/28310_2.png) [@mkoculak](https://discourse.julialang.org/u/mkoculak)\
**Post date:** [December 26, 2022, 10:17pm UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/24 "2022-12-26T22:17:29Z")

</div>

Ok, so actually combination of both suggestions did the trick for me:

- adding 1.8.4 to PATH manually (since I got it through juliaup)
- running the terminal as admin

Separately, they did not work.  
Is there any risk of having only one version in the path?  
(also just as a precaution for others - the Julia [webpage](https://julialang.org/downloads/platform/) is not super explicit as to what is the actual path, so first I have inserted the address without `\bin` at the end which led to couple of my other programs crash when executing the `precompile` command 😉 ).

If there would be need to do some more testing, I am up for it.

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [December 27, 2022, 6:35am UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/25 "2022-12-27T06:35:27Z")

</div>

> [@Shayan](#):
>
> I got nervous by
> 
> > we can do next to nothing about it.

I think you should re-read what I wrote more carefully before getting nervous:

> [@giordano](#):
>
> Also, do note that `MSIMG32.dll` is a Windows system library, _ **if it can’t be found** _ we can do next to nothing about it.

Emphasis is mine. What the `Library` function shows is that, while being required by some other libraries, `MSIMG32.dll` isn’t loaded, but perhaps that means that the dynamic loader didn’t have a chance to try and load it at all because it failed on another library before getting to `MSIMG32.dll`.

Can someone please show the output of the same `Library` command with Julia v1.8.3? I still have no idea why `libssp-0.dll` is searched for with julia v1.8.4 and not v1.8.3. Also, sharing the content of the PATH environment variable with both Julia v1.8.3 and v1.8.4 (especially if you’re still experiencing the same problem) would be helpful, you can use `versioninfo()`.

---

<div class="post-metadata">

**Author:** ![tt1234567](https://avatars.discourse-cdn.com/v4/letter/t/dec6dc/32.png) [@tt1234567](https://discourse.julialang.org/u/tt1234567)\
**Post date:** [December 27, 2022, 10:28am UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/26 "2022-12-27T10:28:43Z")

</div>

> [@giordano](#):
>
> Can someone please show the output of the same `Library` command with Julia v1.8.3? I still have no idea why `libssp-0.dll` is searched for with julia v1.8.4 and not v1.8.3. Also, sharing the content of the PATH environment variable with both Julia v1.8.3 and v1.8.4 (especially if you’re still experiencing the same problem) would be helpful, you can use `versioninfo()`.

Here’s the output from 1.8.3 and 1.8.4. In both cases Julia isn’t included in PATH.

> **1.8.3**
>
> ```julia
> Library(raw"C:\Users\xxxxx\.julia\artifacts\3aff78028a0bb2ad40ebc3ae7e465a52dcbe2730\bin\libcairo-2.dll")
> ◼ C:\Users\xxxxx\.julia\artifacts\3aff78028a0bb2ad40ebc3ae7e465a52dcbe2730\bin\libcairo-2.dll
> ◼ C:\Users\xxxxx\.julia\artifacts\6a5456c156251deff41ae40ac8dfbb3d8c808ffe\bin\libpixman-1-0.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.3\bin\libgcc_s_seh-1.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.3\bin\libwinpthread-1.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\USER32.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\GDI32.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.3\bin\libgcc_s_seh-1.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.3\bin\libwinpthread-1.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\SYSTEM32\MSIMG32.dll
> ◼ C:\WINDOWS\System32\GDI32.dll
> ◼ C:\WINDOWS\System32\GDI32.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.3\bin\libssp-0.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\ADVAPI32.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\RPCRT4.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\sechost.dll
> ◼ C:\WINDOWS\System32\RPCRT4.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\Users\xxxxx\.julia\artifacts\c916a560fa109a4db3d6938a8ab1a6a8b4a09731\bin\libfontconfig-1.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.3\bin\libgcc_s_seh-1.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.3\bin\libwinpthread-1.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\Users\xxxxx\.julia\artifacts\5af028f5ee6fc5d6923b4769eca4bc199914e6bd\bin\libfreetype-6.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.3\bin\libz.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\Users\xxxxx\.julia\artifacts\41eb25ea50f277f03154d52354602687fb1abc84\bin\libexpat-1.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\Users\xxxxx\.julia\artifacts\5af028f5ee6fc5d6923b4769eca4bc199914e6bd\bin\libfreetype-6.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.3\bin\libz.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\Users\xxxxx\.julia\artifacts\72037f1415327f12277eed0521c861517630a0ba\bin\libpng16.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.3\bin\libz.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.3\bin\libz.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> 
> ```

> **1.8.4**
>
> ```julia
> ◼ C:\Users\xxxxx\.julia\artifacts\3aff78028a0bb2ad40ebc3ae7e465a52dcbe2730\bin\libcairo-2.dll
> ◼ C:\Users\xxxxx\.julia\artifacts\6a5456c156251deff41ae40ac8dfbb3d8c808ffe\bin\libpixman-1-0.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.4\bin\libgcc_s_seh-1.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.4\bin\libwinpthread-1.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\USER32.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\GDI32.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.4\bin\libgcc_s_seh-1.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.4\bin\libwinpthread-1.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ✗ MSIMG32.dll (NOT FOUND)
> ◼ C:\WINDOWS\System32\GDI32.dll
> ✗ libssp-0.dll (NOT FOUND)
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\Users\xxxxx\.julia\artifacts\c916a560fa109a4db3d6938a8ab1a6a8b4a09731\bin\libfontconfig-1.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.4\bin\libgcc_s_seh-1.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.4\bin\libwinpthread-1.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\Users\xxxxx\.julia\artifacts\5af028f5ee6fc5d6923b4769eca4bc199914e6bd\bin\libfreetype-6.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.4\bin\libz.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\Users\xxxxx\.julia\artifacts\41eb25ea50f277f03154d52354602687fb1abc84\bin\libexpat-1.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\Users\xxxxx\.julia\artifacts\5af028f5ee6fc5d6923b4769eca4bc199914e6bd\bin\libfreetype-6.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.4\bin\libz.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\Users\xxxxx\.julia\artifacts\72037f1415327f12277eed0521c861517630a0ba\bin\libpng16.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.4\bin\libz.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\Users\xxxxx\AppData\Local\Programs\Julia-1.8.4\bin\libz.dll
> ◼ C:\WINDOWS\System32\msvcrt.dll
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> ◼ C:\WINDOWS\System32\KERNEL32.DLL
> ◼ C:\WINDOWS\System32\KERNELBASE.dll
> 
> ```

Version info:

```julia
versioninfo()
Julia Version 1.8.4
Commit 00177ebc4f (2022-12-23 21:32 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: 12 × Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-13.0.1 (ORCJIT, skylake)
  Threads: 6 on 12 virtual cores
Environment:
  JULIA_EDITOR = code
  JULIA_NUM_THREADS = 6

```

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [December 27, 2022, 11:08am UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/27 "2022-12-27T11:08:16Z")

</div>

Ok, thanks. @jaakkor2 on Slack pointed out that `libssp-0.dll` is loaded at Julia startup on Windows until Julia v1.8.3, but not v1.8.4+. It’s still not clear _why_ that’s the case and what changed between the two versions which caused `libssp-0.dll` not to be loaded automatically anymore, but at least this explains what’s going on: until v1.8.3 this was working “by accident” because `libspp-0.dll` happened to be loaded automatically, but now this isn’t the case any longer and so libcairo, which requires `libssp-0.dll`, can’t find it unless the directory where this library is located is in the `PATH`. I have some possible fixes in mind, but I’d also like to track down exactly what caused this change in behaviour between v1.8.3 and v1.8.4.

---

<div class="post-metadata">

**Author:** ![tt1234567](https://avatars.discourse-cdn.com/v4/letter/t/dec6dc/32.png) [@tt1234567](https://discourse.julialang.org/u/tt1234567)\
**Post date:** [December 27, 2022, 11:12am UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/28 "2022-12-27T11:12:56Z")

</div>

Glad it’s making more sense, @giordano. Thanks for all your efforts!

---

<div class="post-metadata">

**Author:** ![jaakkor2](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jaakkor2/32/2540_2.png) [@jaakkor2](https://discourse.julialang.org/u/jaakkor2)\
**Post date:** [December 27, 2022, 11:13am UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/29 "2022-12-27T11:13:54Z")

</div>

I used `procmon` [Process Monitor - Sysinternals | Microsoft Learn](https://learn.microsoft.com/en-us/sysinternals/downloads/procmon) to have a look what happens on startup .

I set filters as

- “Process Name” “contains” “julia”
- “Operation” “is” “CreateFile”
- “Path” “contains” “dll”  
 ![image](https://global.discourse-cdn.com/julialang/original/3X/0/7/076f59e4182caa8149b30e02b2965265932b1dd2.png)

Julia was started as

- `julia +1.8.3 --startup-file=no` (=v1.8.3)
- `julia --startup-file=no` (=release=v1.8.4)

Filtered logs are in the gist [procmon output of Julia v1.8.3 and Julia v1.8.4 startup on Windows · GitHub](https://gist.github.com/jaakkor2/d84a6f374226c5f666c9eb789d2111ee)

Looks like on 1.8.3, `libssp-0.dll` is loaded when `libLLVM-13jl.dll` gets loaded, but not on 1.8.4.

 ![image](https://global.discourse-cdn.com/julialang/original/3X/8/d/8d11d3c6b1aec90f5a5727de33dd57d0371345fd.png)

cc @giordano

---

<div class="post-metadata">

**Author:** ![Shayan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shayan/32/33025_2.png) [@Shayan](https://discourse.julialang.org/u/Shayan)\
**Post date:** [December 27, 2022, 2:25pm UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/30 "2022-12-27T14:25:16Z")

</div>

> [@giordano](#):
>
> I think you should re-read what I wrote more carefully before getting nervous

Sorry, my bad.

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [December 27, 2022, 5:04pm UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/31 "2022-12-27T17:04:11Z")

</div>

Can someone verify [this Windows build of Julia](https://buildkite.com/organizations/julialang/pipelines/julia-master/builds/19527/jobs/01855457-f8f6-4428-93fb-f1881199b311/artifacts/0185546e-b208-40e5-a566-00f2d63dbc6f), from [[CompilerSupportLibraries\_jll] Add `libssp` as product on Windows by giordano · Pull Request #48012 · JuliaLang/julia · GitHub](https://github.com/JuliaLang/julia/pull/48012), solves the problem? You should be able to use Plots.jl or also just Cairo.jl without having to add the directory where Julia is to the `PATH` environment variable (if you do that you defeat the purpose of the test).

---

<div class="post-metadata">

**Author:** ![tt1234567](https://avatars.discourse-cdn.com/v4/letter/t/dec6dc/32.png) [@tt1234567](https://discourse.julialang.org/u/tt1234567)\
**Post date:** [December 27, 2022, 7:40pm UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/32 "2022-12-27T19:40:13Z")

</div>

Hi @giordano, I think that works. I uninstalled 1.8.4, ran 1.8.3 in the test environment I was using before and did an `]update`. Then I extracted, ran your build and did another `]update` in the same environment. `using Cairo_jll` ran without a problem. I also tried adding `GLMakie` to the environment and plotting - that worked fine.

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [December 28, 2022, 3:29pm UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/33 "2022-12-28T15:29:29Z")

</div>

Thanks for confirming it. In addition to that, if you update the registry you should get `Cairo_jll` `v1.16.1+2` which should fix the problem also for Julia v1.8.4: now GLMakie, Plots, and all other packages depending on `Cairo_jll` should work out-of-the-box even without adding Julia’s directory to `PATH`.

---

<div class="post-metadata">

**Author:** ![tt1234567](https://avatars.discourse-cdn.com/v4/letter/t/dec6dc/32.png) [@tt1234567](https://discourse.julialang.org/u/tt1234567)\
**Post date:** [December 28, 2022, 3:53pm UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/34 "2022-12-28T15:53:41Z")

</div>

> [@giordano](#):
>
> In addition to that, if you update the registry you should get `Cairo_jll` `v1.16.1+2` which should fix the problem also for Julia v1.8.4

It doesn’t seem to work for me. I’ve updated to `[83423d85] Cairo_jll v1.16.1+2` and get the same problem. 'using Cairo\_jll` gives

```julia
ERROR: InitError: could not load library "C:\Users\xxxxx\.julia\artifacts\72e4ee45059d7ee448023a55f8dea24cc5666d81\bin\libcairo-2.dll"
%1 is not a valid Win32 application.
Stacktrace:
etc

```

`DependencyWalker` still says `libssp-0.dll` is not found.

---

<div class="post-metadata">

**Author:** ![sdanisch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sdanisch/32/1406_2.png) [@sdanisch](https://discourse.julialang.org/u/sdanisch)\
**Post date:** [December 28, 2022, 4:02pm UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/35 "2022-12-28T16:02:04Z")

</div>

Could it be, that the fix broke 1.8 windows support?

I just added `Cairo_jll@1.16.1+2` in a new env, and now get:

```julia
julia> using Cairo_jll
[Info: Precompiling Cairo_jll [83423d85-b0ee-5818-9007-b63ccbeb887a]
ERROR: InitError: could not load library "C:\Users\sdani\.julia\artifacts\72e4ee45059d7ee448023a55f8dea24cc5666d81\bin\libcairo-2.dll"
%1 is not a valid Win32 application.
Stacktrace:
  [1] dlopen(s::String, flags::UInt32; throw_error::Bool)
    @ Base.Libc.Libdl .\libdl.jl:117
  [2] dlopen(s::String, flags::UInt32)
    @ Base.Libc.Libdl .\libdl.jl:116
  [3] macro expansion

```

---

<div class="post-metadata">

**Author:** ![sdanisch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sdanisch/32/1406_2.png) [@sdanisch](https://discourse.julialang.org/u/sdanisch)\
**Post date:** [December 28, 2022, 4:08pm UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/36 "2022-12-28T16:08:08Z")

</div>

Yeah this works:

```julia
Pkg.add([(name="Cairo_jll", rev="6212f36")]) # last version
using Cairo_jll

```

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [December 28, 2022, 4:08pm UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/37 "2022-12-28T16:08:50Z")

</div>

Ok, thanks, I just [yanked it](https://github.com/JuliaRegistries/General/pull/74732). Of course the error message is awful, but hey, that’s what the operating system tells us 🤷

---

<div class="post-metadata">

**Author:** ![tt1234567](https://avatars.discourse-cdn.com/v4/letter/t/dec6dc/32.png) [@tt1234567](https://discourse.julialang.org/u/tt1234567)\
**Post date:** [December 30, 2022, 10:32am UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/38 "2022-12-30T10:32:25Z")

</div>

> [@giordano](#):
>
> until v1.8.3 this was working “by accident” because `libspp-0.dll` happened to be loaded automatically, but now this isn’t the case any longer and so libcairo, which requires `libssp-0.dll`, can’t find it unless the directory where this library is located is in the `PATH`.

This is probably a dim question, but why is it that `Libdl` can find and open `libssp-0.dll` in the REPL but `libcairo` can’t?

```julia
using CompilerSupportLibraries_jll, Libdl
Libdl.dlopen("libssp-0.dll")
Ptr{Nothing} @0x00007fffab310000

```

Once it’s opened, `using Cairo_jll` doesn’t give an error.

---

<div class="post-metadata">

**Author:** ![rud-lucien](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rud-lucien/32/38576_2.png) [@rud-lucien](https://discourse.julialang.org/u/rud-lucien)\
**Post date:** [January 3, 2023, 4:40pm UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/39 "2023-01-03T16:40:43Z")

</div>

Hi,

Is there a better option (or one in the works) for circumventing this issue? I actually don’t have admin rights on the machine I use Julia on the most (because it belongs to my employer). Adding Julia to PATH using IT’s admin credentials doesn’t seem to resolve the issue when I try to use Julia using my credentials.

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [January 3, 2023, 5:12pm UTC](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087/40 "2023-01-03T17:12:42Z")

</div>

Use Julia 1.8.3 or wait for 1.8.5.

[Previous page](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087.md?page=1)

[Next page](https://discourse.julialang.org/t/glmakie-and-plots-fail-to-precompile-under-julia-1-8-4/92087.md?page=3)
