Patch libevent when building for Android (fix arc4random_addrandom)

This commit is contained in:
Igor Cota 2019-09-22 15:40:15 +02:00
parent f1e40b3e71
commit 24ffef0c27
2 changed files with 78 additions and 3 deletions

View File

@ -3,10 +3,17 @@ $(package)_version=2.1.8-stable
$(package)_download_path=https://github.com/libevent/libevent/archive/
$(package)_file_name=release-$($(package)_version).tar.gz
$(package)_sha256_hash=316ddb401745ac5d222d7c529ef1eada12f58f6376a66c1118eee803cb70f83d
$(package)_patches=fix_android_arc4random_addrandom.patch
define $(package)_preprocess_cmds
./autogen.sh
endef
ifneq (,$(findstring android,$(host)))
define $(package)_preprocess_cmds
./autogen.sh && patch -p1 < $($(package)_patch_dir)/fix_android_arc4random_addrandom.patch
endef
else
define $(package)_preprocess_cmds
./autogen.sh
endef
endif
define $(package)_set_vars
$(package)_config_opts=--disable-shared --disable-openssl --disable-libevent-regress --disable-samples

View File

@ -0,0 +1,68 @@
From cadae3ab7abf45e61ecae8aac39d97d1f3cbd336 Mon Sep 17 00:00:00 2001
From: Lawrence Nahum <lawrence@greenaddress.it>
Date: Sun, 3 Dec 2017 22:56:09 +0100
Subject: [PATCH] fixup
---
configure.ac | 1 +
evutil_rand.c | 3 +++
include/event2/util.h | 4 ++--
3 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 7528d37..3bb2121 100644
--- a/configure.ac
+++ b/configure.ac
@@ -341,6 +341,7 @@ dnl Checks for library functions.
AC_CHECK_FUNCS([ \
accept4 \
arc4random \
+ arc4random_addrandom \
arc4random_buf \
eventfd \
epoll_create1 \
diff --git a/evutil_rand.c b/evutil_rand.c
index 046a14b..3f0bf2c 100644
--- a/evutil_rand.c
+++ b/evutil_rand.c
@@ -191,6 +191,7 @@ evutil_secure_rng_get_bytes(void *buf, size_t n)
{
ev_arc4random_buf(buf, n);
}
+#ifdef HAVE_ARC4RANDOM_ADDRANDOM
void
evutil_secure_rng_add_bytes(const char *buf, size_t n)
@@ -199,6 +200,8 @@ evutil_secure_rng_add_bytes(const char *buf, size_t n)
n>(size_t)INT_MAX ? INT_MAX : (int)n);
}
+#endif
+
void
evutil_free_secure_rng_globals_(void)
{
diff --git a/include/event2/util.h b/include/event2/util.h
index dd4bbb6..a9a169d 100644
--- a/include/event2/util.h
+++ b/include/event2/util.h
@@ -841,7 +841,7 @@ int evutil_secure_rng_init(void);
*/
EVENT2_EXPORT_SYMBOL
int evutil_secure_rng_set_urandom_device_file(char *fname);
-
+#ifdef HAVE_ARC4RANDOM_ADDRANDOM
/** Seed the random number generator with extra random bytes.
You should almost never need to call this function; it should be
@@ -858,7 +858,7 @@ int evutil_secure_rng_set_urandom_device_file(char *fname);
*/
EVENT2_EXPORT_SYMBOL
void evutil_secure_rng_add_bytes(const char *dat, size_t datlen);
-
+#endif
#ifdef __cplusplus
}
#endif
--
2.14.3