See <http://build.squid-cache.org/job/3.HEAD-i386-opensolaris-SunStudioCc/455/changes>
Changes: [Amos Jeffries <amosjeffr...@squid-cache.org>] Solaris: base system lacks paths.h system definitions [Alex Rousskov <rouss...@measurement-factory.com>] Bug 3091 fix: Bypassed ICAP errors are not counted as service failures. Notify ICAP service about the failure even if we can bypass it. Otherwise, a failing service may continue to stay "up", preventing Squid from using a healthy backup alternative in a service_set (or bypassing ICAP completeley). [Amos Jeffries <amosjeffr...@squid-cache.org>] ext_edirectory_userip_acl: fix uninitialized pointer free [Amos Jeffries <amosjeffr...@squid-cache.org>] Check for ldap_start_tls_s [Amos Jeffries <amosjeffr...@squid-cache.org>] Fix tabbing and WS indentation of src/Makefile [Amos Jeffries <squ...@treenet.co.nz>] Portability fixes for ext_edirectory_userip_acl Solaris builds - bcmp() function is obsolete. use memcmp() instead - Kerberos is not supported by LDAP_AUTH_* [Amos Jeffries <squ...@treenet.co.nz>] Prep for 3.2.0.3 [Automatic source maintenance <squid...@squid-cache.org>] SourceFormat Enforcement [Amos Jeffries <squ...@treenet.co.nz>] Update translation files [Amos Jeffries <squ...@treenet.co.nz>] Avoid a lot of bufer overruns in ext_edirectory_userip_acl [Automatic source maintenance <squid...@squid-cache.org>] SourceFormat Enforcement [Christos Tsantilas <chtsa...@users.sourceforge.net>] Fixed DNS query leaks and increased defense against DNS cache poisoning. We were leaking (i.e. forgetting about) DNS queries under several conditions. The most realistic leak case would go like this: - We send UDP query1. No response. - We send UDP query2. The response for query1 comes, with TC bit. - We try to connect over TCP, sending TCP query3. The response for query2 comes, with TC bit, matching TCP query3 ID. Since we are waiting a response over TCP, we drop the UDP response, and delete the query from the queue. We leak. This change avoids forgetting the query under the above scenario. Moreover, the above steps are hiding another problem: we are accepting responses to timed out queries, making DNS cache poisoning easier. This change avoids that by using unique query ID for each sent query. We have also added an instance ID so that we still can track/identify a single "transaction" from Squid point of view, even when that transaction involves many DNS query messages. When we forget about a DNS query, the caller may get stuck, holding a cbdata lock. This is typical for ACLs that require domain name resolution, for example. On a busy server with a long ACL list, the lock counter keeps growing due to forgotten requests and may overflow, causing a "c->locks < 65535" assertion. This change fixes the assertion unless there are more DNS leaks or different lock leaks present. This is a Measurement Factory project. [Christos Tsantilas <chtsa...@users.sourceforge.net>] The cbdataReference/cbdataReferenceDone of ClientInfo::quotaQueue member does not required for ClientInfo class internal use Related squid-dev discussion: http://www.mail-archive.com/squid-dev@squid-cache.org/msg14280.html [Alex Rousskov <rouss...@measurement-factory.com>] Added debugging to the "client-max-age = 0 and ignore-reload" freshness check. [Alex Rousskov <rouss...@measurement-factory.com>] HTTP Compliance: entry is stale if request has max-age=0. We should always do validation for requests with Cache-Control max-age=0, even when entry age is also zero. In our case, RFC 2616 says: freshness_lifetime = max_age_value response_is_fresh = (freshness_lifetime > current_age) and response_is_fresh is always false if freshness_lifetime is zero. The check code was introduced in r5998 with a "Import of fix-ranges branch" message. The code was commented out at the time of that commit, for reasons unknown. Test case: test_case/rfc2616/noSrv-hit-stale-max-age-req [Amos Jeffries <squ...@treenet.co.nz>] C++ fixes for ext_edirectory_userip_acl renamed: helpers/external_acl/eDirectory_userip/ext_edirectory_userip_acl.c => helpers/external_acl/eDirectory_userip/ext_edirectory_userip_acl.cc ext_edirectory_useri-20100919033043-4fjq9hn9xw9xu8r5-1 [Amos Jeffries <squ...@treenet.co.nz>] Author: Various Translators Translations Update auto-save [Amos Jeffries <amosjeffr...@squid-cache.org>] Bug 3092: basic_sasl_auth needs libmiscencoding [Henrik Nordstrom <hen...@henriknordstrom.net>] Correct ESI processing condition. Need to look for parsed header, not the header mask (filtered) [Henrik Nordstrom <hen...@henriknordstrom.net>] Fix Surrogate-Control header parser of name=value tags. [Automatic source maintenance <squid...@squid-cache.org>] SourceFormat Enforcement [Henrik Nordstrom <hen...@henriknordstrom.net>] basic_smb_auth needs libmiscencoding.la [Alex Rousskov <rouss...@measurement-factory.com>] Reverted r11002 after r11003 added a more general safe_free() fix. [Alex Rousskov <rouss...@measurement-factory.com>] Changed safe_free() definition to eliminate multiple "ambiguous else" warnings. [Alex Rousskov <rouss...@measurement-factory.com>] Added explicit braces to avoid "ambiguous else" warning with GCC v4.4.1. [Amos Jeffries <amosjeffr...@squid-cache.org>] Compile fixes from CentOS [Amos Jeffries <amosjeffr...@squid-cache.org>] Bug 3038: Detatch libmisc from libcompat * Migrates many of the remaining libmisc portability wrappers into libcompat. * Splits libmisc into: libprofiler - Squid internal profiler (developer-only) libmiscencoding - Various binary encoding / crypto algorithms libmisccontainers - Various data container algorithms * Makes all binaries which need to link the libmisc* pieces directly instead of via $(COMPAT_LIB) which now only links the libcompat and internal profiler due to profiling being used on some libcompat functions. * Adds a stub_debug for binaries needing the Debug.h API without squid timers and globals. Some effort has been made to identify binaries whose dependencies can be reduced. More of this dependency removal can be done in future. [Amos Jeffries <amosjeffr...@squid-cache.org>] Support RFC 2965 Set-Cookie2 / Cookie2 headers [Amos Jeffries <amosjeffr...@squid-cache.org>] Harden quoted-string parser to RFC requirements Fix RFC 2616 section 2.2 quote-string handling. * Restrict the parser to the known length of the value string to prevent buffer over-reads from specially crafted inputs. * Drop quoted-string values containing CTL octets. [Amos Jeffries <amosjeffr...@squid-cache.org>] Move client delay pools release notes to 3.2 [Automatic source maintenance <squid...@squid-cache.org>] SourceFormat Enforcement [Alex Rousskov <rouss...@measurement-factory.com>] Use the new Cache Manager registration API for the newly added /dev/poll code. [Alex Rousskov <rouss...@measurement-factory.com>] SMP Cache Manager, Phase2 implementation. Cache Manager actions are forwarded to Coordinator. Coordinator iterates over Kids, aggregating their stats if possible and/or allowing each kid to dump non-aggregatable output directly into response if needed. Non-aggregated output is wrapped in "by kidN { ... } by kidN" markup to ease auto-processing. Regressions and small output formatting changes are probably unavoidable because stats are aggregated and passed around as doubles instead of integers (no more overflows though!) and because many stats collection and formatting lines had to be touched. These are steps in the right direction though, IMO. Old code both computed and dumped stats to Store at the same time. To avoid computing code duplication, we now collect stats in primitive Stats objects and then either dump those to Store or send them to Coordinator for aggregation and, eventual Store dump. What stats to collect, when to aggregate, and when to dump is decided by action-specific Mgr::Action classes. The Cache Manager menu now consists of ActionProfile objects. ActionProfile maintains hard-coded information about specific actions. It uses ActionCreator member to create Action objects when a cache manager request is received. Added Mgr::ActionParams class to maintain action parameters, including HTTP request details necessary for Store entry creation (in another strand) and action-specific parameters (currently just credentials). In Phase3, this class can be extended to supply more parameters such as kid IDs to which the action should apply. Added Mgr::Command that combines hard-coded ActionProfile details with user-specified ActionParams. This simplifies many interfaces because we no longer need to supply a long list of parameters, covering various parts of action config. Moved Cache Manager registration to Mgr::RegisterAction() globals to reduce dependency on the CacheManager class, which is a singleton anyway, and which is unused by most of the registration callers. On the other hand, without this change, no legacy (function-based actions) code would have been changed! Enhanced TypedMsgHdr class to simplify storing and loading non-POD classes. The caller can now easily handle a non-POD class as a series of put/get calls, one for each POD member. This was necessary to send Mgr::ActionParams to Coordinator and back. Will probably be useful for sending other complex structures as well. Reconfigure, shutdown, and other "basic" actions have been moved to src/mgr/BasicActions.cc. Mgr::RegisterBasics() registers them. Most of the Cache Manager code is now in src/mgr/. Many more polishing touches. More polishing left for future projects: Move CacheManager to Mgr namespace and src/mgr/ directory. Use SBuf instead of String for ActionParams and TypedMsgHdr. Rename Ipc::TypedMsgHdr to Ipc::Msg, Ipc::SocketMsg, or similar because it maintains more than just msghdr struct. More stats aggregation, and Phase3 changes. [Francesco Chemolli <kin...@squid-cache.org>] Portability fix: u_int*_t types are deprecated, replaced with uint*_t [Alex Rousskov <rouss...@measurement-factory.com>] Added ERR_PRECONDITION_FAILED template that I missed in r10990 commit. [Automatic source maintenance <squid...@squid-cache.org>] SourceFormat Enforcement [Alex Rousskov <rouss...@measurement-factory.com>] HTTP Compliance: Support If-Match and If-None-Match requests. Add support for If-Match and If-None-Match headers as described in RFC 2616 (sections 14.24 and 14.26 in particular). Moved IMS handling from clientReplyContext::cacheHit() to clientReplyContext::processConditional() while preserving the original IMS logic, except for the case when a request has both IMS and If-None-Match. Co-Advisors test cases: test_clause/rfc2616/ifMatch-mismatch-strong test_clause/rfc2616/ifMatch-mismatch-weak test_clause/rfc2616/ifNoneMatch-match-imsNone and many more [Francesco Chemolli <kin...@squid-cache.org>] First part of StringNg merge: MemBlob. [Amos Jeffries <amosjeffr...@squid-cache.org>] Author: Hank Hampel <h...@nr-city.net> Bug 3028: Permit wbinfo_group.pl to authenticate Kerberos users with NT domain. [Francesco Chemolli <kin...@squid-cache.org>] autoconf: changed shell indirect variable quotation to make it more Bourne shell friendly. [Amos Jeffries <squ...@treenet.co.nz>] Author: Various Translators Translations Update auto-save [Amos Jeffries <squ...@treenet.co.nz>] Author: Various Translators Translations Update auto-save [Alex Rousskov <rouss...@measurement-factory.com>] Fixed DEFAULT_PID_FILE typo to fix "var/run" creation during "make install". [Automatic source maintenance <squid...@squid-cache.org>] SourceFormat Enforcement [Christos Tsantilas <chtsa...@users.sourceforge.net>] Client-side bandwidth limit (a.k.a., quota or delay pool) implementation. Put fde::clientInfo initialization inside an "#if DELAY_POOLS/#endif" to allow squid compile when delay pools are disabled [Christos Tsantilas <chtsa...@users.sourceforge.net>] Alex Rousskov <rouss...@measurement-factory.com> Client-side bandwidth limit (a.k.a., quota or delay pool) implementation. Add forgoten ClientDelayConfig.h and ClientDelayConfig.cc files. These files should be submitted with the r10980 patch [Christos Tsantilas <chtsa...@users.sourceforge.net>] Author: Alex Rousskov <rouss...@measurement-factory.com> Client-side bandwidth limit (a.k.a., quota or delay pool) implementation. In mobile environments, Squid may need to limit Squid-to-client bandwidth available to individual users, identified by their IP addresses. The IP address pool can be as large as a /10 IPv4 network (4 million unique IP addresses) and even larger in IPv6 environments. On the other hand, the code should support thousands of connections coming from a single IP (e.g., a child proxy). The implementation is based on storing bandwidth-related "bucket" information in the existing "client database" hash (client_db.cc). The old code already assigned each client IP a single ClientInfo object, which satisfies the client-side IP-based bandwidth pooling requirements. The old hash size is increased to support up to 32K concurrent clients if needed. Client-side pools are configured similarly to server-side ones, but there is only one pool class. See client_delay_pools, client_delay_initial_bucket_level, client_delay_parameters, and client_delay_access in squid.conf. The client_delay_access matches the client with delay parameters. It does not pool clients from different IP addresses together. Special care is taken to provide fair distribution of bandwidth among clients sharing the same bucket (i.e., clients coming from the same IP address). Multiple same-IP clients competing for bandwidth are queued using FIFO algorithm. If a bucket becomes empty, the first client among those sharing the bucket is delayed by 1 second before it can attempt to receive more response data from Squid. This delay may need to be lowered in high-bandwidth environments. This feature has been documented at http://wiki.squid-cache.org/Features/ClientBandwidthLimit [Amos Jeffries <amosjeffr...@squid-cache.org>] Prep for 3.1.9 [Amos Jeffries <amosjeffr...@squid-cache.org>] Author: Marcin Wisnicki <mwisni...@gmail.com> Bug 3088: dnsserver is segfaulting [Amos Jeffries <squ...@treenet.co.nz>] Author: Various Translators Translations Update auto-save [Amos Jeffries <squ...@treenet.co.nz>] Author: Various Translators Translations Update auto-save [Amos Jeffries <squ...@treenet.co.nz>] Author: Various Translators Translations Update auto-save [Amos Jeffries <amosjeffr...@squid-cache.org>] Bug 2808: getRoundRobinParent not handling weights correctly Suspected fix. Has not been able to be replicated before the change. [Amos Jeffries <amosjeffr...@squid-cache.org>] Bug 2793: memory statistics sometimes display wrong [Amos Jeffries <squ...@treenet.co.nz>] Author: Various Translators Translations Update auto-save [Amos Jeffries <amosjeffr...@squid-cache.org>] Get url_rewrite_concurrency upgrade parse right [Amos Jeffries <amosjeffr...@squid-cache.org>] Upgrade process for obsolete options One problem we currently have with upgrades is leaving the parser able to avoid its bungled/unknown option message for directives which have been fully removed or massively syntax altered. We are able to handle this for flags and option syntax easily but the parser has been particularly dense and strict on the directives (first word of each line). This patch updates the cf_* and cfgman code to allow a special directive type "obsolete" which causes these directives to be handled specially without causing the directives to remain in the publicly visible squid.conf documentation. It allows DOC_START / DOC_END comments to be written in cf.data.pre describing the upgrade actions that need to be taken. This text is dumped to cache.log verbatim when the configuration option is sighted. If "-k parse" is used the text is displayed at debug level 0, otherwise displayed at debug level 1. One line indicating a generic "directive X is obsolete" is always displayed at level 0 for backwards compatibility with admin expectations of a high level "bungled" message. After all this text display, parse_obsolete(char*) is called with the directive name. This function exists in cache_cf.cc and can be coded to selectivey do more complex handling of the directive. ie for upgrade actions deeper than removal. * cf.data.pre has entries added for all the 2.6-3.1 directives I could find that were removed up to 3.HEAD [Amos Jeffries <squ...@treenet.co.nz>] Author: Various Translators Translations Update auto-save [Francesco Chemolli <kin...@squid-cache.org>] Fixed autoconf SQUID_STATE_ROLLBACK improper shell variable expansion. Fixed out-of-order SQUID_CXXFLAGS autoconf substitution [Amos Jeffries <amosjeffr...@squid-cache.org>] Bug 3084: IPv6 without Host: header in request causes connection to hang accel and intercept mode URL re-generation used NtoA instead of ToHostname. This results in the URL incorrectly wrapping the raw-IPv6 and problems connecting to non-existent addresses in some cases. ------------------------------------------ [...truncated 3198 lines...] config.status: creating tools/purge/Makefile config.status: creating include/autoconf.h config.status: executing depfiles commands config.status: executing libtool commands === configuring in libltdl (<http://build.squid-cache.org/job/3.HEAD-i386-opensolaris-SunStudioCc/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/libltdl)> configure: running /bin/sh ../../libltdl/configure --disable-option-checking '--prefix=<http://build.squid-cache.org/job/3.HEAD-i386-opensolaris-SunStudioCc/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst'> 'CC=ccache /opt/SunStudioExpress/prod/bin/cc' 'LDFLAGS=-L/usr/local/sunstudio-libs/lib' 'CXX=ccache /opt/SunStudioExpress/prod/bin/CC' '--enable-ltdl-convenience' --cache-file=/dev/null --srcdir=../../libltdl checking for a BSD-compatible install... /opt/jdsbld/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /usr/gnu/bin/mkdir -p checking for gawk... no checking for mawk... no checking for nawk... nawk checking whether make sets $(MAKE)... yes checking build system type... i386-pc-solaris2.11 checking host system type... i386-pc-solaris2.11 checking for style of include used by make... GNU checking for gcc... ccache /opt/SunStudioExpress/prod/bin/cc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... no checking whether ccache /opt/SunStudioExpress/prod/bin/cc accepts -g... yes checking for ccache /opt/SunStudioExpress/prod/bin/cc option to accept ISO C89... none needed checking dependency style of ccache /opt/SunStudioExpress/prod/bin/cc... none checking for a sed that does not truncate output... /usr/gnu/bin/sed checking for grep that handles long lines and -e... /usr/gnu/bin/grep checking for egrep... /usr/gnu/bin/grep -E checking for fgrep... /usr/gnu/bin/grep -F checking for non-GNU ld... /usr/ccs/bin/ld checking if the linker (/usr/ccs/bin/ld) is GNU ld... no checking for BSD- or MS-compatible name lister (nm)... /usr/gnu/bin/nm -B checking the name lister (/usr/gnu/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 786240 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking for /usr/ccs/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for ar... ar checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/gnu/bin/nm -B output from ccache /opt/SunStudioExpress/prod/bin/cc object... ok checking how to run the C preprocessor... ccache /opt/SunStudioExpress/prod/bin/cc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking for ccache /opt/SunStudioExpress/prod/bin/cc option to produce PIC... -KPIC -DPIC checking if ccache /opt/SunStudioExpress/prod/bin/cc PIC flag -KPIC -DPIC works... yes checking if ccache /opt/SunStudioExpress/prod/bin/cc static flag -Bstatic works... yes checking if ccache /opt/SunStudioExpress/prod/bin/cc supports -c -o file.o... yes checking if ccache /opt/SunStudioExpress/prod/bin/cc supports -c -o file.o... (cached) yes checking whether the ccache /opt/SunStudioExpress/prod/bin/cc linker (/usr/ccs/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... solaris2.11 ld.so checking how to hardcode library paths into programs... immediate checking for shl_load... no checking for shl_load in -ldld... no checking for dlopen... yes checking whether a program can dlopen itself... yes checking whether a statically linked program can dlopen itself... yes checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking which extension is used for runtime loadable modules... .so checking which variable specifies run-time module search path... LD_LIBRARY_PATH checking for the default library search path... /lib /usr/lib checking for library containing dlopen... none required checking for dlerror... yes checking for shl_load... (cached) no checking for shl_load in -ldld... (cached) no checking for dld_link in -ldld... no checking for _ prefix in compiled symbols... no checking whether deplibs are loaded by dlopen... yes checking for argz.h... no checking for error_t... no checking for argz_add... no checking for argz_append... no checking for argz_count... no checking for argz_create_sep... no checking for argz_insert... no checking for argz_next... no checking for argz_stringify... no checking whether libtool supports -dlopen/-dlpreopen... yes checking for unistd.h... (cached) yes checking for dl.h... no checking for sys/dl.h... yes checking for dld.h... no checking for mach-o/dyld.h... no checking for dirent.h... yes checking for closedir... yes checking for opendir... yes checking for readdir... yes checking for strlcat... yes checking for strlcpy... yes configure: creating ./config.status config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands config.status: executing libtool commands === configuring in lib/libTrie (<http://build.squid-cache.org/job/3.HEAD-i386-opensolaris-SunStudioCc/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/lib/libTrie)> configure: running /bin/sh ../../../lib/libTrie/configure --disable-option-checking '--prefix=<http://build.squid-cache.org/job/3.HEAD-i386-opensolaris-SunStudioCc/ws/btlayer-00-default/squid-3.HEAD-BZR/_inst'> 'CC=ccache /opt/SunStudioExpress/prod/bin/cc' 'LDFLAGS=-L/usr/local/sunstudio-libs/lib' 'CXX=ccache /opt/SunStudioExpress/prod/bin/CC' '--enable-ltdl-convenience' --cache-file=/dev/null --srcdir=../../../lib/libTrie checking for C++ compiler default output file name... a.out checking whether the C++ compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C++ compiler... no checking whether ccache /opt/SunStudioExpress/prod/bin/CC accepts -g... yes checking for gcc... ccache /opt/SunStudioExpress/prod/bin/cc checking whether we are using the GNU C compiler... no checking whether ccache /opt/SunStudioExpress/prod/bin/cc accepts -g... yes checking for ccache /opt/SunStudioExpress/prod/bin/cc option to accept ISO C89... none needed checking whether make sets $(MAKE)... yes checking for a BSD-compatible install... /opt/jdsbld/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /usr/gnu/bin/mkdir -p checking for gawk... no checking for mawk... no checking for nawk... nawk checking for style of include used by make... GNU checking dependency style of ccache /opt/SunStudioExpress/prod/bin/cc... none checking dependency style of ccache /opt/SunStudioExpress/prod/bin/CC... none checking whether to enable maintainer-specific portions of Makefiles... no checking for ranlib... ranlib checking build system type... i386-pc-solaris2.11 checking host system type... i386-pc-solaris2.11 checking for a sed that does not truncate output... /usr/gnu/bin/sed checking for grep that handles long lines and -e... /usr/gnu/bin/grep checking for egrep... /usr/gnu/bin/grep -E checking for fgrep... /usr/gnu/bin/grep -F checking for non-GNU ld... /usr/ccs/bin/ld checking if the linker (/usr/ccs/bin/ld) is GNU ld... no checking for BSD- or MS-compatible name lister (nm)... /usr/gnu/bin/nm -B checking the name lister (/usr/gnu/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 786240 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking for /usr/ccs/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for ar... ar checking for strip... strip checking for ranlib... (cached) ranlib checking command to parse /usr/gnu/bin/nm -B output from ccache /opt/SunStudioExpress/prod/bin/cc object... ok checking how to run the C preprocessor... ccache /opt/SunStudioExpress/prod/bin/cc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking whether we are using the GNU C++ compiler... (cached) no checking whether ccache /opt/SunStudioExpress/prod/bin/CC accepts -g... (cached) yes checking how to run the C++ preprocessor... ccache /opt/SunStudioExpress/prod/bin/CC -E checking for objdir... .libs checking for ccache /opt/SunStudioExpress/prod/bin/cc option to produce PIC... -KPIC -DPIC checking if ccache /opt/SunStudioExpress/prod/bin/cc PIC flag -KPIC -DPIC works... yes checking if ccache /opt/SunStudioExpress/prod/bin/cc static flag -Bstatic works... yes checking if ccache /opt/SunStudioExpress/prod/bin/cc supports -c -o file.o... yes checking if ccache /opt/SunStudioExpress/prod/bin/cc supports -c -o file.o... (cached) yes checking whether the ccache /opt/SunStudioExpress/prod/bin/cc linker (/usr/ccs/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... solaris2.11 ld.so checking how to hardcode library paths into programs... immediate checking for shl_load... no checking for shl_load in -ldld... no checking for dlopen... yes checking whether a program can dlopen itself... yes checking whether a statically linked program can dlopen itself... yes checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking whether the ccache /opt/SunStudioExpress/prod/bin/CC linker (/usr/ccs/bin/ld) supports shared libraries... yes checking for ccache /opt/SunStudioExpress/prod/bin/CC option to produce PIC... -KPIC -DPIC checking if ccache /opt/SunStudioExpress/prod/bin/CC PIC flag -KPIC -DPIC works... yes checking if ccache /opt/SunStudioExpress/prod/bin/CC static flag -Bstatic works... no checking if ccache /opt/SunStudioExpress/prod/bin/CC supports -c -o file.o... yes checking if ccache /opt/SunStudioExpress/prod/bin/CC supports -c -o file.o... (cached) yes checking whether the ccache /opt/SunStudioExpress/prod/bin/CC linker (/usr/ccs/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... solaris2.11 ld.so checking how to hardcode library paths into programs... immediate checking for library containing dlopen... none required checking for dlerror... yes checking for shl_load... (cached) no checking for shl_load in -ldld... (cached) no checking for dld_link in -ldld... no checking iostream usability... yes checking iostream presence... yes checking for iostream... yes checking for an ANSI C-conforming const... yes checking for size_t... yes configure: creating ./config.status config.status: creating Makefile config.status: creating include/Makefile config.status: creating src/Makefile config.status: creating test/Makefile config.status: creating config.h config.status: executing depfiles commands config.status: executing libtool commands make[1]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-i386-opensolaris-SunStudioCc/ws/btlayer-00-default/squid-3.HEAD-BZR/_build'> Making all in compat make[2]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-i386-opensolaris-SunStudioCc/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/compat'> source='../../compat/assert.cc' object='assert.o' libtool=no \ DEPDIR=.deps depmode=none /bin/sh ../../cfgaux/depcomp \ ccache /opt/SunStudioExpress/prod/bin/CC -DHAVE_CONFIG_H -I../.. -I../../include -I../../lib -I../../src -I../include -I/usr/local/include -I/usr/include/gssapi -I/usr/include/kerberosv5 -I../../libltdl -I/usr/include/gssapi -I/usr/include/kerberosv5 -errwarn=%all,no%badargtype2w,no%wbadinit,no%wbadasg -errtags -D_REENTRANT -g -c -o assert.o ../../compat/assert.cc source='../../compat/compat.cc' object='compat.o' libtool=no \ DEPDIR=.deps depmode=none /bin/sh ../../cfgaux/depcomp \ ccache /opt/SunStudioExpress/prod/bin/CC -DHAVE_CONFIG_H -I../.. -I../../include -I../../lib -I../../src -I../include -I/usr/local/include -I/usr/include/gssapi -I/usr/include/kerberosv5 -I../../libltdl -I/usr/include/gssapi -I/usr/include/kerberosv5 -errwarn=%all,no%badargtype2w,no%wbadinit,no%wbadasg -errtags -D_REENTRANT -g -c -o compat.o ../../compat/compat.cc source='../../compat/debug.cc' object='debug.o' libtool=no \ DEPDIR=.deps depmode=none /bin/sh ../../cfgaux/depcomp \ ccache /opt/SunStudioExpress/prod/bin/CC -DHAVE_CONFIG_H -I../.. -I../../include -I../../lib -I../../src -I../include -I/usr/local/include -I/usr/include/gssapi -I/usr/include/kerberosv5 -I../../libltdl -I/usr/include/gssapi -I/usr/include/kerberosv5 -errwarn=%all,no%badargtype2w,no%wbadinit,no%wbadasg -errtags -D_REENTRANT -g -c -o debug.o ../../compat/debug.cc source='../../compat/GnuRegex.c' object='GnuRegex.o' libtool=no \ DEPDIR=.deps depmode=none /bin/sh ../../cfgaux/depcomp \ ccache /opt/SunStudioExpress/prod/bin/cc -DHAVE_CONFIG_H -I../.. -I../../include -I../../lib -I../../src -I../include -I/usr/local/include -I/usr/include/gssapi -I/usr/include/kerberosv5 -I../../libltdl -I/usr/include/gssapi -I/usr/include/kerberosv5 -errwarn=%all -errtags -D_REENTRANT -g -c ../../compat/GnuRegex.c source='../../compat/xalloc.cc' object='xalloc.o' libtool=no \ DEPDIR=.deps depmode=none /bin/sh ../../cfgaux/depcomp \ ccache /opt/SunStudioExpress/prod/bin/CC -DHAVE_CONFIG_H -I../.. -I../../include -I../../lib -I../../src -I../include -I/usr/local/include -I/usr/include/gssapi -I/usr/include/kerberosv5 -I../../libltdl -I/usr/include/gssapi -I/usr/include/kerberosv5 -errwarn=%all,no%badargtype2w,no%wbadinit,no%wbadasg -errtags -D_REENTRANT -g -c -o xalloc.o ../../compat/xalloc.cc "../../compat/compat.cc", line 4: Error, incomtypew: failure_notify, of type void(*)(const char*), was previously declared extern "C" void(*)(const char*). 1 Error(s) detected. make[2]: *** [compat.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-i386-opensolaris-SunStudioCc/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/compat'> make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-i386-opensolaris-SunStudioCc/ws/btlayer-00-default/squid-3.HEAD-BZR/_build'> make: *** [distcheck] Error 1 buildtest.sh result is 2 BUILD: .././test-suite/buildtests/layer-00-default.opts make[2]: *** [compat.o] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [distcheck] Error 1 Build FAILED.