Re: [squid-users] Squid 3.3.1 / Solaris 10

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Wed, 13 Feb 2013 18:32:58 +1300

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
Received on Wed Feb 13 2013 - 05:33:08 MST

This archive was generated by hypermail 2.2.0 : Wed Feb 13 2013 - 12:00:04 MST