summaryrefslogtreecommitdiffstats
path: root/ipc/chromium/src/third_party/libevent/README.mozilla
blob: 8b2490dd09f56fcef603037b78e900e303d589b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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.