Permalink
Browse files

better build instructions

git-svn-id: http://code.sixapart.com/svn/memcached/trunk@81 b0b603af-a30f-0410-a34e-baf09ae79d0b
  • Loading branch information...
1 parent bfebefb commit 2c35a3fddc589a4a047336aa05f290df44b2da8a @bradfitz bradfitz committed Jul 31, 2003
Showing with 18 additions and 2 deletions.
  1. +18 −2 BUILD
View
20 BUILD
@@ -7,13 +7,29 @@ Make sure your libevent has epoll (Linux) or kqueue (BSD) support.
Using poll or select only is slow, and works for testing, but
shouldn't be used for high-traffic memcache installations.
-To build libevent with epoll on Linux, you need:
+To build libevent with epoll on Linux, you need two things. First,
+you need /usr/include/sys/epoll.h . To get it, you can install the
+userspace epoll library, epoll-lib. The link to the latest version
+is buried inside
+http://www.xmailserver.org/linux-patches/nio-improve.html ; currently
+it's http://www.xmailserver.org/linux-patches/epoll-lib-0.9.tar.gz .
+If you're having any trouble building/installing it, you can just copy
+epoll.h from that tarball to /usr/include/sys as that's the only thing
+from there that libevent really needs.
+
+Secondly, you need to declare syscall numbers of epoll syscalls, so
+libevent can use them. Put these declarations somewhere
+inside <sys/epoll.h>:
#define __NR_epoll_create 254
#define __NR_epoll_ctl 255
#define __NR_epoll_wait 256
-One okay (but not ideal) place to shove them is /usr/include/asm/unistd.h
+After this you should be able to build libevent with epoll support.
+Once you build/install libevent, you don't need <sys/epoll.h> to
+compile memcache or link it against libevent. Don't forget that for epoll
+support to actually work at runtime you need to use a kernel with epoll
+support patch applied, as explained in the README file.
BSD users are luckier, and will get kqueue support by default.

0 comments on commit 2c35a3f

Please sign in to comment.