For the record; please report these type of issues through bugzilla.
On 13/02/2013 2:07 a.m., C. Pelissier wrote:
Hi,
I've just tried Solaris 10 compilation of last squid 3.3.1.
Here is my configure :
CFLAGS=-std=c99 ./configure --prefix=$PREFIX
--disable-strict-error-checking --localstatedir=/var/squid
--with-pthreads --enable-default-err-language=French
--enable-err-languages="French"
--with-build-environment=POSIX_V6_ILP32_OFFBIG --enable-auth-basic="LDAP
NCSA" --enable-digest-auth-helpers=password
--enable-external-acl-helpers="ldap_group ip_user" --enable-eui
--enable-ssl --with-openssl=/usr/sfw --with-large-files
LDFLAGS=-R/usr/sfw/lib
Configure passed, but compilation failed here :
libtool: compile: g++ -DHAVE_CONFIG_H -I../.. -I../../include
-I../../lib -I../../src -I../../include -I/usr/include/gssapi
-I/usr/include/kerberosv5 -I../../libltdl -I/usr/sfw/include
-I/usr/include/gssapi -I/usr/include/kerberosv5 -Wall -Wpointer-arith
-Wwrite-strings -Wcomments -pipe -D_REENTRANT -pthreads -Usparc -Uunix
-Ui386 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -MT
ModDevPoll.lo -MD -MP -MF .deps/ModDevPoll.Tpo -c ModDevPoll.cc -fPIC
-DPIC -o .libs/ModDevPoll.o
In file included from ../../compat/compat_shared.h:202,
from ../../compat/compat.h:80,
from ../../include/squid.h:66,
from ModDevPoll.cc:51:
/usr/include/kerberosv5/com_err.h:20: warning: ignoring #pragma ident
ModDevPoll.cc: In function `void Comm::SelectLoopInit()':
ModDevPoll.cc:224: error: `fd_open' undeclared (first use this function)
ModDevPoll.cc:224: error: (Each undeclared identifier is reported only
once for each function it appears in.)
ModDevPoll.cc: In function `void Comm::SetSelect(int, unsigned int, void
(*)(int, void*), void*, time_t)':
ModDevPoll.cc:252: error: `fd_table' undeclared (first use this
function)
ModDevPoll.cc: In function `comm_err_t Comm::DoSelect(int)':
ModDevPoll.cc:384: error: `fd_table' undeclared (first use this
function)
gmake[3]: *** [ModDevPoll.lo] Error 1
gmake[3]: Leaving directory
`/export/home/peli/pub.d/squid-3.3.1/src/comm'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory `/export/home/peli/pub.d/squid-3.3.1/src'
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory `/export/home/peli/pub.d/squid-3.3.1/src'
gmake: *** [all-recursive] Error 1
Adding this following line to src/comm/ModDevPoll.cc should fix it:
#include "globals.h"
However, globals.h is one file we are trying to erase from Squid in
upcoming versions. Can I enlist your assistance build-testing a longer
term fix?
==
Adding --disable-devpoll ===> compilation OK
==
--disable-devpoll Disable Solaris /dev/poll support.
Oracle doc about /dev/poll :
==
http://docs.oracle.com/cd/E19253-01/816-5177/6mbbc4g9n/index.html
The /dev/poll device, associated driver and corresponding manpages may
be removed in a future Solaris release. For similar functionality in the
event ports framework, see port_create(3C).
The /dev/poll driver is a special driver that enables you to monitor
multiple sets of polled file descriptors. By using the /dev/poll driver,
you can efficiently poll large numbers of file descriptors. Access to
the /dev/poll driver is provided through open(2), write(2), and ioctl(2)
system calls.
==
What kind of performance impact could drive disabling devpoll.
You drop back to the "slow" poll() or select() system calls. They are a
noticable 1-2 digit %-points slower in bandwidth/sec under heavy load.
Greetings
PS.
Solaris compilation of 3.2 and 3.3 needs the following patch
diff xstrto.h xstrto.h.ori
1d0
< #if defined(__cplusplus)
32d30
< #endif
Checked and added. Thank you.
Amos