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

Win32 SuiteSparse build is subtly borked #7

Closed
vtjnash opened this issue Feb 28, 2019 · 10 comments · Fixed by #487 or JuliaLang/julia#34935
Closed

Win32 SuiteSparse build is subtly borked #7

vtjnash opened this issue Feb 28, 2019 · 10 comments · Fixed by #487 or JuliaLang/julia#34935
Labels
bug 🐛 Something isn't working

Comments

@vtjnash
Copy link
Member

vtjnash commented Feb 28, 2019

It's installing 3 copies of every dll, and loading 2 of each at runtime.

@staticfloat
Copy link
Member

Can you give more details? What do you mean by three copies, and why would it load two?

@staticfloat
Copy link
Member

Closed by df2e078

@vtjnash vtjnash reopened this Sep 18, 2019
@vtjnash
Copy link
Member Author

vtjnash commented Sep 18, 2019

From Slack, it turns out this is not fixed yet: while the SONAME Is now correct, it's still installing the other 2 incorrect copies.

@giordano giordano added the bug 🐛 Something isn't working label Oct 7, 2019
@ViralBShah
Copy link
Member

Is this still an issue?

@vtjnash
Copy link
Member Author

vtjnash commented Feb 9, 2020

I don’t think it was ever fixed

@ViralBShah
Copy link
Member

What needs to be done? Which 2 of the 3 need to be deleted?

@ViralBShah
Copy link
Member

I believe we do a cp -r somewhere and it follows the symlinks. I suspect we can delete all the ones with the version numbers attached to them.

libamd.2.4.6.dll
libamd.2.dll
libamd.dll
libbtf.1.2.6.dll
libbtf.1.dll
libbtf.dll
libcamd.2.4.6.dll
libcamd.2.dll
libcamd.dll
libccolamd.2.9.6.dll
libccolamd.2.dll
libccolamd.dll
libcholmod.3.0.13.dll
libcholmod.3.dll
libcholmod.dll
libcolamd.2.9.6.dll
libcolamd.2.dll
libcolamd.dll
libklu.1.3.8.dll
libklu.1.dll
libklu.dll
libldl.2.2.6.dll
libldl.2.dll
libldl.dll
librbio.2.2.6.dll
librbio.2.dll
librbio.dll
libspqr.2.0.9.dll
libspqr.2.dll
libspqr.dll
libsuitesparse_wrapper.dll
libsuitesparseconfig.5.4.0.dll
libsuitesparseconfig.5.dll
libsuitesparseconfig.dll
libumfpack.5.7.8.dll
libumfpack.5.dll
libumfpack.dll

@giordano Is there an easy way to fix this or should we add some lines to SuiteSparse to delete the unnecessary dlls?

@giordano
Copy link
Member

giordano commented Feb 9, 2020

Is there an easy way to fix this or should we add some lines to SuiteSparse to delete the unnecessary dlls?

I think one would need to manually remove the files. This (untested) might work:

if [[ "${target}" == *-mingw* ]]; then
    rm ${libdir}/lib*.*.${dlext}
    rm ${libdir}/lib*.*.*.${dlext}
fi

(but this removes all the libraries with the soversions, not sure this is desired)

However, I'm also surprised that two libraries are loaded at a time. Does that happen with BinaryProvider or the Artifacts sytem?

@ViralBShah
Copy link
Member

Do the soversions matter on windows?

@giordano
Copy link
Member

giordano commented Feb 10, 2020

Do the soversions matter on windows?

No.

Makefiles for the various libraries have lines like these:

	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )

SO_MAIN and SO_PLAIN are defined in SuiteSparse_config/SuiteSparse_config.mk, the comments say all:

ifeq ($(UNAME),Windows)
    # Cygwin Make on Windows
    AR_TARGET = $(LIBRARY).lib
    SO_TARGET  = $(LIBRARY).dll
    # The following two links are just garbage copies of the real target
    # they aren't actually supported by this OS
    SO_MAIN   = $(LIBRARY).$(SO_VERSION).dll
    SO_PLAIN = $(LIBRARY).$(VERSION).dll
    SO_OPTS  += -shared
    SO_INSTALL_NAME = echo

ViralBShah pushed a commit that referenced this issue Feb 10, 2020
ViralBShah pushed a commit that referenced this issue Feb 10, 2020
* Delete extra libraries on Windows

Fix #7

* [SuiteSparse] Use new types for sources and dependencies

* Rename directory SuiteSparse@5 -> SuiteSparse
install_license for suitesparse

Co-authored-by: Mosè Giordano <[email protected]>
@vtjnash vtjnash reopened this Nov 20, 2022
@vtjnash vtjnash closed this as completed Nov 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug 🐛 Something isn't working
Projects
None yet
4 participants