From 5fc1adf9b9da6b1ef6f961854f759fb00c69e959 Mon Sep 17 00:00:00 2001 From: "Nicolas \"Pixel\" Noble" Date: Sun, 10 May 2015 22:20:31 +0200 Subject: [PATCH] Msys2 fixes, and compilation instructions. --- INSTALL | 23 +++++++++++++++++++++++ Makefile | 3 +++ src/core/iomgr/iocp_windows.c | 1 - src/core/iomgr/tcp_client_windows.c | 2 +- templates/Makefile.template | 3 +++ 5 files changed, 30 insertions(+), 2 deletions(-) diff --git a/INSTALL b/INSTALL index 50040d7d21c..5edb5e6db23 100644 --- a/INSTALL +++ b/INSTALL @@ -140,6 +140,29 @@ you will need to install certain modules for python. $ sudo easy_install simplejson mako +Mingw-specific notes: +--------------------- + +While gRPC compiles properly under mingw, some more preparation work is needed. +The recommendation is to use msys2. The installation instructions are available +at that address: http://msys2.github.io/ + +Once this is installed, make sure you are using the following: MinGW-w64 Win64. +You'll be required to install a few more packages: + + $ pacman -S make mingw-w64-x86_64-gcc mingw-w64-x86_64-zlib autoconf automake libtool + +Please also install OpenSSL from that website: + + http://slproweb.com/products/Win32OpenSSL.html + +The package Win64 OpenSSL v1.0.2a should do. At that point you should be able +to compile gRPC with the following: + + $ export LDFLAGS="-L/mingw64/lib -L/c/OpenSSL-Win64" + $ export CPPFLAGS="-I/mingw64/include -I/c/OpenSSL-Win64/include" + $ make + A word on OpenSSL ----------------- diff --git a/Makefile b/Makefile index 92c202c1b1a..b63880a72a5 100644 --- a/Makefile +++ b/Makefile @@ -42,6 +42,9 @@ endif ifeq ($(SYSTEM),MSYS) SYSTEM = MINGW32 endif +ifeq ($(SYSTEM),MINGW64) +SYSTEM = MINGW32 +endif ifndef BUILDDIR diff --git a/src/core/iomgr/iocp_windows.c b/src/core/iomgr/iocp_windows.c index 8827bb99bcb..0c62bfccd51 100644 --- a/src/core/iomgr/iocp_windows.c +++ b/src/core/iomgr/iocp_windows.c @@ -121,7 +121,6 @@ static void do_iocp_work() { } static void iocp_loop(void *p) { - void * eventshutdown = NULL; while (gpr_atm_acq_load(&g_orphans) || gpr_atm_acq_load(&g_custom_events) || !gpr_event_get(&g_shutdown_iocp)) { diff --git a/src/core/iomgr/tcp_client_windows.c b/src/core/iomgr/tcp_client_windows.c index d95346f87ab..cf5174327dd 100644 --- a/src/core/iomgr/tcp_client_windows.c +++ b/src/core/iomgr/tcp_client_windows.c @@ -98,10 +98,10 @@ static void on_connect(void *acp, int from_iocp) { if (from_iocp) { DWORD transfered_bytes = 0; DWORD flags; - info->outstanding = 0; BOOL wsa_success = WSAGetOverlappedResult(sock, &info->overlapped, &transfered_bytes, FALSE, &flags); + info->outstanding = 0; GPR_ASSERT(transfered_bytes == 0); if (!wsa_success) { char *utf8_message = gpr_format_message(WSAGetLastError()); diff --git a/templates/Makefile.template b/templates/Makefile.template index e446f2b40c2..2c7767c2dc3 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -56,6 +56,9 @@ endif ifeq ($(SYSTEM),MSYS) SYSTEM = MINGW32 endif +ifeq ($(SYSTEM),MINGW64) +SYSTEM = MINGW32 +endif ifndef BUILDDIR