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

2013-02-12 Thread Amos Jeffries

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


[squid-users] Squid 3.3.1 / Solaris 10

2013-02-12 Thread C. Pelissier
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 --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.

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