-
Notifications
You must be signed in to change notification settings - Fork 57
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
Windows support plan #193
Comments
With a couple of hacks, I've got an apparently successful MSVC build of crypt.lib (static lib), which allowed me to build php-xpass. Any help on properly fixing this so it can be submitted as PR here is welcome! |
The tests on Windows pass? I will try to build your version on Windows Intel and ARM64 |
@cmb69 Where is the Windows build instruction? |
The php-xpass tests were passing. Now I tried to run the libxcrypt test-suite, but had to deactivate a couple of test cases for now, because they either use deactivate-tests.patch Makefile.am | 4 ----
1 file changed, 4 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 5c07059..08ed7ee 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -368,19 +368,15 @@ check_PROGRAMS = \
test/alg-sha256 \
test/alg-sha512 \
test/alg-yescrypt \
- test/badsalt \
test/badsetting \
test/byteorder \
test/checksalt \
- test/compile-strong-alias \
- test/crypt-badargs \
test/crypt-gost-yescrypt \
test/explicit-bzero \
test/gensalt \
test/gensalt-extradata \
test/gensalt-nthash \
test/getrandom-fallbacks \
- test/getrandom-interface \
test/preferred-method \
test/short-outbuf \
test/special-char-salt To unfail alg-yescript, I had to apply: unfail-alg-yescript.patch test/alg-yescrypt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/alg-yescrypt.c b/test/alg-yescrypt.c
index 8112dac..3303368 100644
--- a/test/alg-yescrypt.c
+++ b/test/alg-yescrypt.c
@@ -158,7 +158,7 @@ int main(void)
{
int i;
- setvbuf(stdout, NULL, _IOLBF, 0);
+ // setvbuf(stdout, NULL, _IOLBF, 0);
#ifdef TEST_PBKDF2_SHA256
print_PBKDF2_SHA256("password", "salt", 1, 20); Otherwise the test crashes with MSVC since passing 0 as last argument to Afterwards I get: test-suite.log
The failing
So far I tried only x64, but not x86, let alone ARM64 (can cross-compile in theory, but have no ARM machine available).
So far I was reluctant to set that up, since I've only did rough testing, but given the test suite runs pretty well, I've submitted winlibs/winlib-builder#34. |
@cmb69 I looked winlibs/winlib-builder#34. You use MSYS2 to build the library. Unfortunately, MSYS2 is not available on ARM64 😢 |
See winlibs/winlib-builder#34 (comment). I suggest to continue discussion there (unless it's generally related to libxcrypt, of course). |
I think there are two issues here: compiling on Windows and compiling with MSVC. The former can be done with GCC. I would guess it makes most sense to first get the former to work and then the latter. |
Building with MinGW GCC works fine (besides that libtool avoids building a shared library on that platform, because there might be undefined symbols, which would cause the build to fail; so need to patch libtool). Only very minor issue: libxcrypt/lib/util-get-random-bytes.c Line 140 in ca15167
MS declares the 3rd parameter to I'll try to provide a PR (or maybe a couple of PRs) regarding MSVC support. |
Hello @cmb69 May I ask how is the progress now? I also encountered the build failure when using mingw: ../git/lib/util-get-random-bytes.c: In function '_crypt_get_random_bytes': |
Hi,
Have you a plan to support Windows?
I'm interested in building on Windows for a PHP extension called
xpass
.https://github.com/remicollet/php-xpass
The text was updated successfully, but these errors were encountered: