From 5b7de6d7536d1f4bf469d0d3037b7143a4f1805e Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Tue, 4 Nov 2014 14:04:37 +0000 Subject: [PATCH] - Redefine internal minievent symbols to unique symbols that helps linking on platforms where the linker leaks names across modules. git-svn-id: file:///svn/unbound/trunk@3252 be551aaa-1e26-0410-a405-d3ace91eadb9 --- doc/Changelog | 2 ++ util/mini_event.h | 15 +++++++++++++++ util/winsock_event.h | 15 +++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index 47e564973..6f5223693 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,8 @@ 4 November 2014: Wouter - Add ub_ctx_add_ta_autr function to add a RFC5011 automatically tracked trust anchor to libunbound. + - Redefine internal minievent symbols to unique symbols that helps + linking on platforms where the linker leaks names across modules. 27 October 2014: Wouter - Disabled use of SSLv3 in remote-control and ssl-upstream. diff --git a/util/mini_event.h b/util/mini_event.h index 58bbc8073..1a5bcb445 100644 --- a/util/mini_event.h +++ b/util/mini_event.h @@ -58,6 +58,21 @@ #define HAVE_EVENT_BASE_FREE #endif +/* redefine to use our own namespace so that on platforms where + * linkers crosslink library-private symbols with other symbols, it works */ +#define event_init minievent_init +#define event_get_version minievent_get_version +#define event_get_method minievent_get_method +#define event_base_dispatch minievent_base_dispatch +#define event_base_loopexit minievent_base_loopexit +#define event_base_free minievent_base_free +#define event_set minievent_set +#define event_base_set minievent_base_set +#define event_add minievent_add +#define event_del minievent_del +#define signal_add minisignal_add +#define signal_del minisignal_del + /** event timeout */ #define EV_TIMEOUT 0x01 /** event fd readable */ diff --git a/util/winsock_event.h b/util/winsock_event.h index 40892c14b..f64265743 100644 --- a/util/winsock_event.h +++ b/util/winsock_event.h @@ -90,6 +90,21 @@ #define HAVE_EVENT_BASE_FREE #endif +/* redefine the calls to different names so that there is no name + * collision with other code that uses libevent names. (that uses libunbound)*/ +#define event_init winsockevent_init +#define event_get_version winsockevent_get_version +#define event_get_method winsockevent_get_method +#define event_base_dispatch winsockevent_base_dispatch +#define event_base_loopexit winsockevent_base_loopexit +#define event_base_free winsockevent_base_free +#define event_set winsockevent_set +#define event_base_set winsockevent_base_set +#define event_add winsockevent_add +#define event_del winsockevent_del +#define signal_add winsocksignal_add +#define signal_del winsocksignal_del + /** event timeout */ #define EV_TIMEOUT 0x01 /** event fd readable */ -- 2.47.2