summaryrefslogtreecommitdiffstats
path: root/third_party
diff options
context:
space:
mode:
Diffstat (limited to 'third_party')
-rw-r--r--third_party/libevent/README.chromium2
-rw-r--r--third_party/libevent/event-internal.h5
-rw-r--r--third_party/libevent/evrpc.c1
-rw-r--r--third_party/libevent/http.c1
-rw-r--r--third_party/libevent/sys-queue-macros.patch47
5 files changed, 55 insertions, 1 deletions
diff --git a/third_party/libevent/README.chromium b/third_party/libevent/README.chromium
index ddb34a4..1cbdd80 100644
--- a/third_party/libevent/README.chromium
+++ b/third_party/libevent/README.chromium
@@ -10,6 +10,8 @@ Changes from upstream:
being installed (alternative is adding crazy -I arguments to the commandline)
4) The directories WIN32-Code and WIN32-Prj are not included
5) add mac/config.h from a run of configure on a Mac.
+6) sys-queue-macros.patch is applied to build on systems which are missing a
+complete sys/queue.h
SConscript does not include a few files that don't build on Linux:
devpoll.c, evport.c, kqueue.c
diff --git a/third_party/libevent/event-internal.h b/third_party/libevent/event-internal.h
index 7485f21..93ac568 100644
--- a/third_party/libevent/event-internal.h
+++ b/third_party/libevent/event-internal.h
@@ -71,7 +71,7 @@ struct event_base {
};
/* Internal use only: Functions that might be missing from <sys/queue.h> */
-#ifndef HAVE_TAILQFOREACH
+#if !defined(HAVE_TAILQFOREACH) || defined(__QUENTIN_BUILD__)
#define TAILQ_FIRST(head) ((head)->tqh_first)
#define TAILQ_END(head) NULL
#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
@@ -85,6 +85,9 @@ struct event_base {
*(listelm)->field.tqe_prev = (elm); \
(listelm)->field.tqe_prev = &(elm)->field.tqe_next; \
} while (0)
+#define TAILQ_LAST(head, headname) \
+ (*(((struct headname *)((head)->tqh_last))->tqh_last))
+#define TAILQ_EMPTY(head) ((head)->tqh_first == NULL)
#endif /* TAILQ_FOREACH */
int _evsignal_set_handler(struct event_base *base, int evsignal,
diff --git a/third_party/libevent/evrpc.c b/third_party/libevent/evrpc.c
index 070fd9e7..194cdab 100644
--- a/third_party/libevent/evrpc.c
+++ b/third_party/libevent/evrpc.c
@@ -55,6 +55,7 @@
#include "event.h"
#include "evrpc.h"
+#include "event-internal.h"
#include "evrpc-internal.h"
#include "evhttp.h"
#include "evutil.h"
diff --git a/third_party/libevent/http.c b/third_party/libevent/http.c
index 38a89b6..8fce37a 100644
--- a/third_party/libevent/http.c
+++ b/third_party/libevent/http.c
@@ -88,6 +88,7 @@
#include "evutil.h"
#include "log.h"
#include "http-internal.h"
+#include "event-internal.h"
#ifdef WIN32
#define strcasecmp _stricmp
diff --git a/third_party/libevent/sys-queue-macros.patch b/third_party/libevent/sys-queue-macros.patch
new file mode 100644
index 0000000..921545a
--- /dev/null
+++ b/third_party/libevent/sys-queue-macros.patch
@@ -0,0 +1,47 @@
+diff --git a/third_party/libevent/event-internal.h b/third_party/libevent/event-internal.h
+index 7485f21..93ac568 100644
+--- a/event-internal.h
++++ b/event-internal.h
+@@ -71,7 +71,7 @@ struct event_base {
+ };
+
+ /* Internal use only: Functions that might be missing from <sys/queue.h> */
+-#ifndef HAVE_TAILQFOREACH
++#if !defined(HAVE_TAILQFOREACH) || defined(__QUENTIN_BUILD__)
+ #define TAILQ_FIRST(head) ((head)->tqh_first)
+ #define TAILQ_END(head) NULL
+ #define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
+@@ -85,6 +85,9 @@ struct event_base {
+ *(listelm)->field.tqe_prev = (elm); \
+ (listelm)->field.tqe_prev = &(elm)->field.tqe_next; \
+ } while (0)
++#define TAILQ_LAST(head, headname) \
++ (*(((struct headname *)((head)->tqh_last))->tqh_last))
++#define TAILQ_EMPTY(head) ((head)->tqh_first == NULL)
+ #endif /* TAILQ_FOREACH */
+
+ int _evsignal_set_handler(struct event_base *base, int evsignal,
+diff --git a/third_party/libevent/evrpc.c b/third_party/libevent/evrpc.c
+index 070fd9e..194cdab 100644
+--- a/evrpc.c
++++ b/evrpc.c
+@@ -55,6 +55,7 @@
+
+ #include "event.h"
+ #include "evrpc.h"
++#include "event-internal.h"
+ #include "evrpc-internal.h"
+ #include "evhttp.h"
+ #include "evutil.h"
+diff --git a/third_party/libevent/http.c b/third_party/libevent/http.c
+index 38a89b6..8fce37a 100644
+--- a/http.c
++++ b/http.c
+@@ -88,6 +88,7 @@
+ #include "evutil.h"
+ #include "log.h"
+ #include "http-internal.h"
++#include "event-internal.h"
+
+ #ifdef WIN32
+ #define strcasecmp _stricmp