-
Notifications
You must be signed in to change notification settings - Fork 53
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
Working on MSVC support #144
Conversation
I like parg. The only reason I didn't use any long options is portability, but parg solves that issue nicely. I'll probably modify the CLI to take advantage of that soon.
For gipfeli nemequ/gipfeli@26c15a2 might fix it. I've already filed a PR for that. For zstd, I just updated the zstd submodule to the latest version, so you may want to rebase. The changes are pretty significant… |
Okay, there is some documentation of the differences compared to getopt in the readme at https://github.com/jibsen/parg
I had that as well, but there are a couple more changes needed:
It looks like I rebased after you pulled in zstd 0.2.0, it is compiling fine here now. |
It would probably be better to do something like #if defined(__GNUC__)
# if !defined(HAVE_BUILTIN_CTZ)
# #define HAVE_BUILTIN_CTZ
# endif
# if !defined(HAVE_BUILTIN_EXPECT)
# #define HAVE_BUILTIN_EXPECT
# endif
#endif That would allow it to continue using those builtins on gcc and clang by default, and allow for a check in the build system for other compilers. FWIW the Windows equivalent of |
I noticed AppVeyor was up, so I am playing around with it, hope that's okay. I think it should work, except it's missing Ragel. |
The headers unistd.h and strings.h are not available. Remove inclusion of strings.h from plugins except for zpaq which uses snprintf. Add macros to internal.h to call MSVC alternatives.
For some reason static inline does not work, but static __inline does.
MSVC does not add lib prefix to library names.
This was causing a crash in yalz77 due to blocksize being 0.
This will possibly take too long time for AppVeyor.
What's the current status of windows support? Does this repo have all of @jibsen's updates to support windows? I'm usually developing on Linux but at the moment I'm traveling without access to a Linux box and am definitely willing to help get the Windows side of things working. |
@jibsen is in a better position to answer this, but other than a few plugins which will not work with MSVC (see #145) AFAIK MSVC support works pretty well. Other compilers are a bit harder to judge since we don't have an AppVeyor build, but I think GCC should work, clang still has some issues.
Yes.
I'll definitely take all the help I can get. The windows label lists some relevant tasks. If you have any questions please don't hesitate to ask (here, #squash on freenode, mailing list… whatever you prefer). |
Sorry, I broke the MSVC build when I got Squash working on Solaris and didn't notice. It should be fixed now. |
I believe status on Windows is:
I haven't tried any other compilers on Windows. As @nemequ says, any help is greatly appreciated. |
As discussed in #86.
The goal so far is just to get it to compile and run, here are some notes: