Re: epoll on squid

From: David Nicklay <dnicklay@dont-contact.us>
Date: 16 Dec 2002 17:02:35 -0500

I suspect what is hapenning is that you do not have '--disable-select
--disable-poll' in your configure line. Unfortunately with the way
configure in squid is setup right now, if you enable kqueue or epoll it
will still try to enable select or poll. I will try to fix this, but
for now I think specifically disabling select and poll should do it.

On Fri, 2002-12-13 at 23:28, Reuben Farrelly wrote:
> Ok, some progress. The two 'gotchas' I ran into were that:
>
> 1. kernel 2.5.52 has the patch from Davide Libenzis page - no need to
> patch kernel sources to build epoll-lib anymore
>
> 2. the epoll-lib Makefile looks for files in
> /usr/src/linux hmmm. Problem for me initialli, as my sources are in
> /usr/src/linux-2.5 although I just altered the makefile and it built after
> that :)
>
>
> It all went ok after that until the end of compilation:
>
> g++ -Werror -Wall -g -O2 -D_REENTRANT -g -o squid access_log.o acl.o
> asn.o authenticate.o cache_cf.o CacheDigest.o cache_manager.o carp.o
> cbdata.o client_db.o client_side.o client_side_reply.o
> client_side_request.o clientStream.o comm.o comm_select.o comm_poll.o
> comm_kqueue.o comm_epoll.o debug.o delay_pools.o disk.o dns_internal.o
> errorpage.o ETag.o event.o external_acl.o fd.o filemap.o forward.o
> fqdncache.o ftp.o gopher.o helper.o http.o HttpStatusLine.o HttpHdrCc.o
> HttpHdrRange.o HttpHdrContRange.o HttpHeader.o HttpHeaderTools.o HttpBody.o
> HttpMsg.o HttpReply.o HttpRequest.o icmp.o icp_v2.o icp_v3.o ident.o
> internal.o ipc.o ipcache.o IPInterception.o logfile.o main.o mem.o
> MemBuf.o mime.o multicast.o neighbors.o net_db.o Packer.o pconn.o
> peer_digest.o peer_select.o redirect.o referer.o refresh.o send-announce.o
> snmp_core.o snmp_agent.o ssl.o ssl_support.o stat.o StatHist.o String.o
> stmem.o store.o store_io.o store_client.o store_digest.o store_dir.o
> store_key_md5.o store_log.o store_rebuild.o store_swapin.o store_swapmeta.o
> store_swapout.o tools.o ufscommon.o unlinkd.o url.o urn.o useragent.o
> wais.o wccp.o whois.o repl_modules.o auth_modules.o store_modules.o
> globals.o string_arrays.o -L../lib repl/libheap.a repl/liblru.a
> fs/libaufs.a fs/libcoss.a fs/libdiskd.a fs/libufs.a fs/libnull.a
> auth/libbasic.a auth/libdigest.a auth/libntlm.a -lcrypt -lregex
> -L../snmplib -lsnmp -lssl -lcrypto -lmiscutil -lrt -lpthread -lm -lresolv
> -lbsd -lnsl -lepoll
> comm_epoll.o(.text+0x0): In function `comm_select_init':
> /usr/src/squid/squid-epoll/src/comm_epoll.cc:81: multiple definition of
> `comm_select_init'
> comm_poll.o(.text+0xf00):/usr/src/squid/squid-epoll/src/comm_poll.cc:566:
> first defined here
> /usr/bin/ld: Warning: size of symbol `comm_select_init' changed from 87 to
> 110 in comm_epoll.o
> comm_epoll.o(.text+0x70): In function `commSetSelect':
> /usr/src/squid/squid-epoll/src/comm_epoll.cc:102: multiple definition of
> `commSetSelect'
> comm_poll.o(.text+0x0):/usr/src/squid/squid-epoll/src/comm_poll.cc:131:
> first defined here
> /usr/bin/ld: Warning: size of symbol `commSetSelect' changed from 273 to
> 734 in comm_epoll.o
> comm_epoll.o(.text+0x350): In function `comm_select':
> /usr/src/squid/squid-epoll/src/comm_epoll.cc:184: multiple definition of
> `comm_select'
> comm_poll.o(.text+0x590):/usr/src/squid/squid-epoll/src/comm_poll.cc:319:
> first defined here
> /usr/bin/ld: Warning: size of symbol `comm_select' changed from 2269 to 429
> in comm_epoll.o
> comm_epoll.o(.text+0x500): In function `comm_quick_poll_required':
> /usr/src/squid/squid-epoll/src/comm_epoll.cc:232: multiple definition of
> `comm_quick_poll_required'
> comm_poll.o(.text+0x10f0):/usr/src/squid/squid-epoll/src/comm_poll.cc:623:
> first defined here
> collect2: ld returned 1 exit status
> make[3]: *** [squid] Error 1
> make[3]: Leaving directory `/usr/src/squid/squid-epoll/src'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory `/usr/src/squid/squid-epoll/src'
> make[1]: *** [all] Error 2
> make[1]: Leaving directory `/usr/src/squid/squid-epoll/src'
> make: *** [all-recursive] Error 1
> [root@tornado squid-epoll]#
>
> Config options:
>
> ./configure \
> --exec-prefix=/usr --bindir=/usr/sbin --libexecdir=/usr/lib/squid \
> --localstatedir=/var --sysconfdir=/etc/squid --datadir=/etc/squid \
> --enable-snmp --enable-removal-policies="heap,lru" \
> --enable-storeio="aufs,coss,diskd,ufs,null" --enable-gnuregex \
> --enable-delay-pools --enable-linux-netfilter \
> --with-pthreads --enable-async-io=16 --enable-snmp --enable-ssl \
> --enable-auth="basic,digest,ntlm" --enable-basic-auth-helpers="PAM" \
> --enable-ntlm-auth-helpers="fakeauth,no_check,winbind" \
> --enable-digest-auth-helpers="password" --enable-epoll
>
> Using gcc-3.21 btw.
>
> Thanks,
> Reuben
>
>
>
> At 05:16 PM 10/12/2002 -0500, you wrote:
>
> >You need epoll-lib from Davide Libenzi's site. I thought I had attached
> >it in a previous email. I would like to put something in to check for
> >the library, but I don't know quite how to do that using autoconf.
>
> -------------------------------------------------------------
> Reuben Farrelly West Ryde, NSW 2114, Australia

-- 
David Nicklay
Location: CNN Center - SE0811A
Office: 404-827-2698	Cell: 404-545-6218
Received on Mon Dec 16 2002 - 15:04:05 MST

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:19:01 MST