Skip to content

Commit

Permalink
depends: Add libevent compatibility patch for windows
Browse files Browse the repository at this point in the history
Add a patch that seems to be necessary for compatibilty of libevent
2.0.22 with recent mingw-w64 gcc versions (at least GCC 5.3.1 from Ubuntu
16.04).

Without this patch the Content-Length in the HTTP header ends up as
`Content-Length: zu`, causing communication between the RPC
client and server to break down. See discussion in #8653.

Source: https://sourceforge.net/p/levent/bugs/363/

Thanks to @sstone for the suggestion.
  • Loading branch information
laanwj authored and Bushstar committed Sep 20, 2018
1 parent b654842 commit c298b43
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 2 deletions.
5 changes: 3 additions & 2 deletions depends/packages/libevent.mk
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@ $(package)_version=2.0.22
$(package)_download_path=https://github.com/libevent/libevent/releases/download/release-2.0.22-stable
$(package)_file_name=$(package)-$($(package)_version)-stable.tar.gz
$(package)_sha256_hash=71c2c49f0adadacfdbe6332a372c38cf9c8b7895bb73dabeaa53cdcc1d4e1fa3
$(package)_patches=reuseaddr.patch
$(package)_patches=reuseaddr.patch libevent-2-fixes.patch

define $(package)_preprocess_cmds
patch -p1 < $($(package)_patch_dir)/reuseaddr.patch
patch -p1 < $($(package)_patch_dir)/reuseaddr.patch && \
patch -p1 < $($(package)_patch_dir)/libevent-2-fixes.patch
endef

define $(package)_set_vars
Expand Down
18 changes: 18 additions & 0 deletions depends/patches/libevent/libevent-2-fixes.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
--- a/util-internal.h 2013-11-01 12:18:57.000000000 -0600
+++ b/util-internal.h 2015-07-20 20:19:43.199560900 -0500
@@ -299,8 +299,13 @@ HANDLE evutil_load_windows_system_librar

#if defined(__STDC__) && defined(__STDC_VERSION__)
#if (__STDC_VERSION__ >= 199901L)
-#define EV_SIZE_FMT "%zu"
-#define EV_SSIZE_FMT "%zd"
+ #if defined(_MSC_VER) || defined(__MINGW32__) || defined(__MINGW64__)
+ #define EV_SIZE_FMT "%Iu"
+ #define EV_SSIZE_FMT "%Id"
+ #else
+ #define EV_SIZE_FMT "%zu"
+ #define EV_SSIZE_FMT "%zd"
+ #endif
#define EV_SIZE_ARG(x) (x)
#define EV_SSIZE_ARG(x) (x)
#endif

0 comments on commit c298b43

Please sign in to comment.