This is a clean copy of libevent-2.0.21-stable with the following modifications. 1. Add the following files: - linux/event2/event-config.h - mac/event2/event-config.h - bsd/event2/event-config.h - android/event2/event-config.h These files are taken from libevent-2.0.21-stable built on the development environment indicated by the first path component. You have to run "./configure" and "make" to get all of the pre-processing done. The file can then be found in "include/event2/". You then need to modify the _EVENT_SIZEOF_* constants in the generated linux, android, mac and bsd headers to be appropriate for both 32-bit and 64-bit platforms. Use __LP64__ to distinguish the two cases. If you get something wrong the CHECK_EVENT_SIZEOF static assertions in message_pump_libevent.cc will fail. 2. This is ugly, prepare yourself. OS X has a weird problem with how the "TAILQ_END(head)" is used, causing a linking error. Just replace all use of the "TAILQ_END(head)" macro with "NULL". 3. Apply the following patches from ipc/chromium/src/third_party/libevent/patches/: - "mac-arc4random-buf.patch". This removes some bad OS X compatibility code. This will allow libevent to compile on all supported versions of OS X. - "openbsd-no-arc4random_addrandom.patch". This fixes the build on OpenBSD (which doesn't provide arc4random_addrandom anymore, see #931354). - "use-non-deprecated-syscalls.patch". This fixes the build on AArch64 architecture (which does not provide deprecated syscalls). - "dont-use-issetugid-on-android.patch". This fixes the build on Android L preview. - "avoid-empty-sighandler.patch". This fixes some OS X crashes. - "android64_support.patch". This fixes Android 64-bit support. - "backport-upstream-fixes.patch". Backports a few upstream fixes from 2.1.x to our in-tree copy of 2.0.21.