xref: /memcached-1.4.29/BUILD (revision 2c35a3fd)
1Ideally, you want to make a static binary, otherwise the dynamic
2linker pollutes your address space with shared libs right in the
3middle.  (NOTE: actually, this shouldn't matter so much anymore, now
4that we only allocate huge, fixed-size slabs)
5
6Make sure your libevent has epoll (Linux) or kqueue (BSD) support.
7Using poll or select only is slow, and works for testing, but
8shouldn't be used for high-traffic memcache installations.
9
10To build libevent with epoll on Linux, you need two things. First,
11you need /usr/include/sys/epoll.h . To get it, you can install the
12userspace epoll library, epoll-lib. The link to the latest version
13is buried inside
14http://www.xmailserver.org/linux-patches/nio-improve.html ; currently
15it's http://www.xmailserver.org/linux-patches/epoll-lib-0.9.tar.gz .
16If you're having any trouble building/installing it, you can just copy
17epoll.h from that tarball to /usr/include/sys as that's the only thing
18from there that libevent really needs.
19
20Secondly, you need to declare syscall numbers of epoll syscalls, so
21libevent can use them. Put these declarations somewhere
22inside <sys/epoll.h>:
23
24#define __NR_epoll_create               254
25#define __NR_epoll_ctl          255
26#define __NR_epoll_wait         256
27
28After this you should be able to build libevent with epoll support.
29Once you build/install libevent, you don't need <sys/epoll.h> to
30compile memcache or link it against libevent. Don't forget that for epoll
31support to actually work at runtime you need to use a kernel with epoll
32support patch applied, as explained in the README file.
33
34BSD users are luckier, and will get kqueue support by default.
35
36
37
38