Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various library bundling nits #46872

Open
KristofferC opened this issue Sep 23, 2022 · 4 comments
Open

Various library bundling nits #46872

KristofferC opened this issue Sep 23, 2022 · 4 comments
Labels
building Build system, or building Julia or its dependencies

Comments

@KristofferC
Copy link
Member

Multiple copies of the same library on Windows:

On Windows we seem to concretize symlinks into copies of the libraries which leads to duplication:

-rw------- 1 kc kc 2.2M Sep  9 11:36 libblastrampoline-5-0-2.dll
-rw------- 1 kc kc 2.2M Sep  9 11:36 libblastrampoline-5.dll
-rw------- 1 kc kc 2.2M Sep  9 11:36 libblastrampoline.dll

We only use libblastrampoline.dll anyway.

Different libpcre2 versions shipped on Windows:

-rw------- 1 kc kc 689K Sep  9 11:37 libpcre2-16-0.dll
-rw------- 1 kc kc 689K Sep  9 11:37 libpcre2-16.dll
-rw------- 1 kc kc 661K Sep  9 11:37 libpcre2-32-0.dll
-rw------- 1 kc kc 661K Sep  9 11:37 libpcre2-32.dll
-rw------- 1 kc kc 751K Sep  9 11:37 libpcre2-8-0.dll
-rw------- 1 kc kc 751K Sep  9 11:37 libpcre2-8.dll
-rw------- 1 kc kc 112K Sep  9 11:37 libpcre2-posix-3.dll

but I think we only use libpcre2-8.dll.

Some LLVM support libs only shipped on Windows:

-rw------- 1 kc kc 293K Sep  9 11:37 libRemarks.dll
-rw------- 1 kc kc 390K Sep  9 11:37 libLTO.dll
-rw------- 1 kc kc 326K Sep  9 11:37 libmlir_async_runtime.dll
-rw------- 1 kc kc 901K Sep  9 11:37 libmlir_c_runner_utils.dll
-rw------- 1 kc kc 323K Sep  9 11:37 libmlir_runner_utils.dll

are they needed?

Inconsisteny in naming of libLLVM:

libLLVM.dylib
libLLVM-13jl.so 
libLLVM-13jl.dll

Maybe mac should have -13jl as well?

@JeffBezanson JeffBezanson added the building Build system, or building Julia or its dependencies label Sep 23, 2022
@giordano
Copy link
Contributor

We only use libblastrampoline.dll anyway.

That's wrong though: JuliaLinearAlgebra/libblastrampoline#87

@inkydragon
Copy link
Member

inkydragon commented Sep 24, 2022

On Windows we seem to concretize symlinks into copies of the libraries which leads to duplication:

By default, ln -s copies the file on windows instead of creating a symbolic link.
Administrator privileges and an environment variable are required to create a real symbolic link.
A possible alternative is to create a hard link. cp -f --dereference --link src dst

Some LLVM support libs only shipped on Windows:

Those DLLs came from: https://github.com/JuliaBinaryWrappers/LLVM_jll.jl

@KristofferC
Copy link
Member Author

A possible alternative is to create a hard link. cp -f --dereference --link src dst

Is there a need for any links at all? libblastrampoline seems to be the odd one out here of all the libraries on Windows with three copies.

Those DLLs came from: https://github.com/JuliaBinaryWrappers/LLVM_jll.jl

Are they needed for anything in the Julia installation?

@giordano
Copy link
Contributor

With #47676 there will be a single copy of libblastrampoline on Windows, the different copies were error-prone anyway.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
building Build system, or building Julia or its dependencies
Projects
None yet
Development

No branches or pull requests

4 participants