Skip to content
This repository has been archived by the owner on May 29, 2018. It is now read-only.

Use precompiled DLLs on Windows #5

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Use precompiled DLLs on Windows #5

wants to merge 1 commit into from

Conversation

ararslan
Copy link
Owner

Lets see what AppVeyor has to say about this...

@ararslan
Copy link
Owner Author

ararslan commented Sep 11, 2016

Doesn't like it.

(The Travis failed checks are because I canceled those builds.)

@tkelman
Copy link
Collaborator

tkelman commented Sep 11, 2016

probably needs os = :Windows

@ararslan
Copy link
Owner Author

@tkelman Ah, good idea. I'll add that. I assume that won't help this error though?:

LoadError: I don't know how to unpack C:\Users\appveyor\.julia\v0.5\ZStd\deps\downloads\:libzstd.1.0.0.dll

I assume that has something to do with the unpacked_dir argument, since a DLL doesn't really need unpacking in the sense of an archive.

@tkelman
Copy link
Collaborator

tkelman commented Sep 11, 2016

the colon in the filename is causing issues. did you build both 32 and 64 bit binaries in the same zip?

@tkelman
Copy link
Collaborator

tkelman commented Sep 11, 2016

oh yeah i don't think it can handle a raw dll properly.

@ararslan
Copy link
Owner Author

the colon in the filename is causing issues.

Hm. That's the URL that BinTray gave me. Are there alternative paths you can use on BinTray?

did you build both 32 and 64 bit binaries in the same zip?

Nope. Do I use the i686-w64-mingw32-gcc to compile the 32-bit DLL? I'll compile that too and stick it in a .zip.

oh yeah i don't think it can handle a raw dll properly.

:(

@ararslan ararslan force-pushed the aa/windows branch 4 times, most recently from 3b6f120 to 4eb2c22 Compare September 11, 2016 23:19
provides(Homebrew.HB, "zstd", zstd, os=:Darwin)
elseif is_windows()
dlurl = "https://dl.bintray.com/ararslan/generic/libzstd-$(Sys.WORD_SIZE).zip"
provides(Binaries, URI(dlurl), zstd, unpacked_dir=libdir(zstd), os=:Windows)
Copy link
Collaborator

@tkelman tkelman Sep 12, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should make a usr/bin in the zip files and put the dll there, then you shouldn't need to specify unpacked_dir

from what I remember the last time I tried setting unpacked_dir = "." or otherwise empty it didn't go well

@ararslan
Copy link
Owner Author

ararslan commented Sep 12, 2016

Awesome, 64-bit Windows works!! The problem now is that 32-bit still does not, and it's not exactly clear why...

LoadError: Provider BinDeps.Binaries failed to satisfy dependency zstd
while loading C:\Users\appveyor\.julia\v0.5\ZStd\deps\build.jl, in expression starting on line 31

@tkelman
Copy link
Collaborator

tkelman commented Sep 12, 2016

dlopen may have failed

@ararslan
Copy link
Owner Author

Doesn't dlopen usually tell you when it fails to open something though?

@tkelman
Copy link
Collaborator

tkelman commented Sep 12, 2016

not when called by bindeps, annoyingly

@tkelman tkelman closed this Sep 12, 2016
@tkelman tkelman reopened this Sep 12, 2016
@ararslan
Copy link
Owner Author

ararslan commented Sep 12, 2016

Could something cryptic like this happen if I didn't do the cross-compiling for 32-bit Windows correctly? I used i686-w64-mingw32-gcc on OS X (64-bit).

@tkelman
Copy link
Collaborator

tkelman commented Sep 12, 2016

it may be missing a dependency. usually i use dependency walker to check for that when I'm on windows, not sure the best tool to use from the cross compiler system

@ararslan
Copy link
Owner Author

You mean Zstandard itself could be missing a dependency on 32-bit Windows?

@tkelman
Copy link
Collaborator

tkelman commented Sep 12, 2016

right. if I had to guess, it might need libgcc_s on 32 bit for some integer operation that wouldn't otherwise be provided in the 32 bit windows c runtime library

@tkelman
Copy link
Collaborator

tkelman commented Sep 12, 2016

though that should be available from julia, so maybe it's something else

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
Implementation
In Progress
Development

Successfully merging this pull request may close these issues.

None yet

2 participants