Compile error on 3.2.5 with Solaris 10 SPARC / SunStudio 12.3þþ

From: Eric R. Perez V. <sirbrain_at_hotmail.com>
Date: Mon, 7 Jan 2013 14:17:45 -0600

Hi!

 - I'm trying to compile squid 3.2.5 on Solaris 10 SPARC using SunStudio 12.3, and produces the following error at link

fase:

CC -DHAVE_CONFIG_H
-DDEFAULT_CONFIG_FILE=\"/usr/local/squid/etc/squid.conf\"
-DDEFAULT_SQUID_DATA_DIR=\"/usr/local/squid/share\"
-DDEFAULT_SQUID_CONFIG_DIR=\"/usr/local/squid/etc\" -I.. -I../include
-I../lib -I../src -I../include -I../libltdl -I../src -I../libltdl
-I/usr/local/include
-errwarn=%all,no%badargtype2w,no%wbadinit,no%wbadasg -errtags
-D_REENTRANT -lpthread -erroff=wvarhidemem,nullref,identexpected
-library=stlport4 -c -o swap_log_op.o swap_log_op.cc
/bin/bash
../libtool --tag=CXX --mode=link CC
-errwarn=%all,no%badargtype2w,no%wbadinit,no%wbadasg -errtags
-D_REENTRANT -lpthread -erroff=wvarhidemem,nullref,identexpected
-library=stlport4 -export-dynamic -dlopen force -g -o squid AclRegs.o
AuthReg.o AccessLogEntry.o AsyncEngine.o cache_cf.o CacheDigest.o
cache_manager.o carp.o cbdata.o ChunkedCodingParser.o client_db.o
client_side.o client_side_reply.o client_side_request.o BodyPipe.o
clientStream.o CompletionDispatcher.o ConfigOption.o ConfigParser.o
CpuAffinity.o CpuAffinityMap.o CpuAffinitySet.o debug.o delay_pools.o
DelayId.o DelayBucket.o DelayConfig.o DelayPool.o DelaySpec.o
DelayTagged.o DelayUser.o DelayVector.o NullDelayId.o
ClientDelayConfig.o disk.o DiskIO/DiskIOModule.o DiskIO/ReadRequest.o
DiskIO/WriteRequest.o dlink.o dns_internal.o DnsLookupDetails.o
errorpage.o ETag.o event.o EventLoop.o external_acl.o ExternalACLEntry.o
 FadingCounter.o fd.o fde.o filemap.o forward.o fqdncache.o ftp.o
gopher.o helper.o HelperChildConfig.o htcp.o http.o HttpStatusLine.o
HttpHdrCc.o HttpHdrRange.o HttpHdrSc.o HttpHdrScTarget.o
HttpHdrContRange.o HttpHeader.o HttpHeaderTools.o HttpBody.o HttpMsg.o
HttpParser.o HttpReply.o HttpRequest.o HttpRequestMethod.o icp_v2.o
icp_v3.o int.o internal.o ipc.o ipcache.o list.o main.o mem.o
mem_node.o MemBuf.o MemObject.o mime.o mime_header.o multicast.o
neighbors.o Packer.o Parsing.o pconn.o peer_digest.o
peer_proxy_negotiate_auth.o peer_select.o peer_sourcehash.o
peer_userhash.o redirect.o refresh.o RemovalPolicy.o send-announce.o
MemBlob.o SquidMath.o SquidNew.o stat.o StatCounters.o StatHist.o
String.o stmem.o store.o StoreFileSystem.o store_io.o StoreIOState.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
StoreMeta.o StoreMetaMD5.o StoreMetaSTD.o StoreMetaSTDLFS.o
StoreMetaUnpacker.o StoreMetaURL.o StoreMetaVary.o StoreStats.o
StoreSwapLogData.o Server.o SwapDir.o MemStore.o time.o tools.o tunnel.o
 unlinkd.o url.o URLScheme.o urn.o wccp.o wccp2.o whois.o wordlist.o
LoadableModule.o LoadableModules.o DiskIO/DiskIOModules_gen.o err_type.o
 err_detail_type.o globals.o hier_code.o icp_opcode.o lookup_t.o
repl_modules.o swap_log_op.o auth/libacls.la ident/libident.la
acl/libacls.la eui/libeui.la acl/libstate.la auth/libauth.la
libBlocking.a libDiskDaemon.a libDiskThreads.a libMmapped.a
acl/libapi.la base/libbase.la libsquid.la ip/libip.la fs/libfs.la
ipc/libipc.la mgr/libmgr.la anyp/libanyp.la comm/libcomm.la
eui/libeui.la icmp/libicmp.la icmp/libicmp-core.la log/liblog.la
format/libformat.la DiskIO/Blocking/BlockingDiskIOModule.o
DiskIO/DiskDaemon/DiskDaemonDiskIOModule.o
DiskIO/DiskThreads/DiskThreadsDiskIOModule.o
DiskIO/Mmapped/MmappedDiskIOModule.o repl/liblru.a -lcrypt -lmd5
ssl/libsslsquid.la ssl/libsslutil.la ../lib/libmisccontainers.la
../lib/libmiscencoding.la ../lib/libmiscutil.la -L/usr/local/lib -lssl
-lcrypto -L../compat -lcompat-squid -lm -lsocket -lresolv -lnsl -lrt
 -L.. ../libltdl/libltdlc.la
libtool: link: rm -f .libs/squid.nm .libs/squid.nmS .libs/squid.nmT
libtool: link: (cd .libs && cc -xc99 -D_XOPEN_SOURCE=600 -D_XPG6 -c "squidS.c")
libtool: link: rm -f ".libs/squidS.c" ".libs/squid.nm" ".libs/squid.nmS" ".libs/squid.nmT"
libtool:
 link: CC -errwarn=%all,no%badargtype2w,no%wbadinit,no%wbadasg -errtags
-D_REENTRANT -erroff=wvarhidemem,nullref,identexpected .libs/squidS.o -g
 -o squid AclRegs.o AuthReg.o AccessLogEntry.o AsyncEngine.o cache_cf.o
CacheDigest.o cache_manager.o carp.o cbdata.o ChunkedCodingParser.o
client_db.o client_side.o client_side_reply.o client_side_request.o
BodyPipe.o clientStream.o CompletionDispatcher.o ConfigOption.o
ConfigParser.o CpuAffinity.o CpuAffinityMap.o CpuAffinitySet.o debug.o
delay_pools.o DelayId.o DelayBucket.o DelayConfig.o DelayPool.o
DelaySpec.o DelayTagged.o DelayUser.o DelayVector.o NullDelayId.o
ClientDelayConfig.o disk.o DiskIO/DiskIOModule.o DiskIO/ReadRequest.o
DiskIO/WriteRequest.o dlink.o dns_internal.o DnsLookupDetails.o
errorpage.o ETag.o event.o EventLoop.o external_acl.o ExternalACLEntry.o
 FadingCounter.o fd.o fde.o filemap.o forward.o fqdncache.o ftp.o
gopher.o helper.o HelperChildConfig.o htcp.o http.o HttpStatusLine.o
HttpHdrCc.o HttpHdrRange.o HttpHdrSc.o HttpHdrScTarget.o
HttpHdrContRange.o HttpHeader.o HttpHeaderTools.o HttpBody.o HttpMsg.o
HttpParser.o HttpReply.o HttpRequest.o HttpRequestMethod.o icp_v2.o
icp_v3.o int.o internal.o ipc.o ipcache.o list.o main.o mem.o mem_node.o
 MemBuf.o MemObject.o mime.o mime_header.o multicast.o neighbors.o
Packer.o Parsing.o pconn.o peer_digest.o peer_proxy_negotiate_auth.o
peer_select.o peer_sourcehash.o peer_userhash.o redirect.o refresh.o
RemovalPolicy.o send-announce.o MemBlob.o SquidMath.o SquidNew.o stat.o
StatCounters.o StatHist.o String.o stmem.o store.o StoreFileSystem.o
store_io.o StoreIOState.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 StoreMeta.o StoreMetaMD5.o
StoreMetaSTD.o StoreMetaSTDLFS.o StoreMetaUnpacker.o StoreMetaURL.o
StoreMetaVary.o StoreStats.o StoreSwapLogData.o Server.o SwapDir.o
MemStore.o time.o tools.o tunnel.o unlinkd.o url.o URLScheme.o urn.o
wccp.o wccp2.o whois.o wordlist.o LoadableModule.o LoadableModules.o
DiskIO/DiskIOModules_gen.o err_type.o err_detail_type.o globals.o
hier_code.o icp_opcode.o lookup_t.o repl_modules.o swap_log_op.o
DiskIO/Blocking/BlockingDiskIOModule.o
DiskIO/DiskDaemon/DiskDaemonDiskIOModule.o
DiskIO/DiskThreads/DiskThreadsDiskIOModule.o
DiskIO/Mmapped/MmappedDiskIOModule.o
/export/home/access/squid-3.2.5/libltdl/./.libs/dlopen.a
auth/.libs/libacls.a ident/.libs/libident.a acl/.libs/libacls.a
acl/.libs/libstate.a auth/.libs/libauth.a libBlocking.a libDiskDaemon.a
libDiskThreads.a libMmapped.a acl/.libs/libapi.a base/.libs/libbase.a
./.libs/libsquid.a ip/.libs/libip.a fs/.libs/libfs.a ipc/.libs/libipc.a
mgr/.libs/libmgr.a anyp/.libs/libanyp.a comm/.libs/libcomm.a
eui/.libs/libeui.a icmp/.libs/libicmp.a icmp/.libs/libicmp-core.a
log/.libs/liblog.a format/.libs/libformat.a repl/liblru.a -lcrypt -lmd5
ssl/.libs/libsslsquid.a ssl/.libs/libsslutil.a
../lib/.libs/libmisccontainers.a ../lib/.libs/libmiscencoding.a
../lib/.libs/libmiscutil.a -lpthread -library=stlport4 -L/usr/local/lib
-lssl -lcrypto -L/export/home/access/squid-3.2.5/compat -lcompat-squid
-lm -lsocket -lresolv -lnsl -lrt -L/export/home/access/squid-3.2.5
../libltdl/.libs/libltdlc.a
Undefined first referenced
 symbol in file
CommCloseCbPtrFun::CommCloseCbPtrFun(void(*)(const
 CommCloseCbParams&),const CommCloseCbParams&)
./.libs/libsquid.a(comm.o)
CommTimeoutCbPtrFun::CommTimeoutCbPtrFun(void(*)(const CommTimeoutCbParams&),const CommTimeoutCbParams&) client_side.o
void Ipc::TypedMsgHdr::putInt(int) mgr/.libs/libmgr.a(ActionParams.o)
FdeCbPtrFun::FdeCbPtrFun(void(*)(const FdeCbParams&),const FdeCbParams&) ./.libs/libsquid.a(comm.o)
ld: fatal: symbol referencing errors. No output written to squid
libtool: link: rm -f ".libs/squidS.o"
make[3]: *** [squid] Error 2
make[3]: Leaving directory `/export/home/access/squid-3.2.5/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/export/home/access/squid-3.2.5/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/export/home/access/squid-3.2.5/src'
make: *** [all-recursive] Error 1
-bash-3.2#

Platform details:

uname -m = sun4u
uname -r = 5.10
uname -s = SunOS
uname -v = Generic_147440-26

/usr/bin/uname -p = sparc
/bin/uname -X = System = SunOS
Release = 5.10
KernelID = Generic_147440-26
Machine = sun4u
BusType = <unknown>
Serial = <unknown>
Users = <unknown>
OEM# = 0
Origin# = 1
NumCPU = 1

Configure details:

configure
 --prefix=/usr/local/squid --enable-icmp --enable-delay-pools
--enable-devpoll --enable-kill-parent-hack --enable-ssl
--enable-ipf-transparent --with-openssl=/usr/local --without-krb5-config
 --enable-auth-basic="MSNT MSNT-multi-domain NCSA PAM POP3 RADIUS SASL
SMB fake getpwnam" --enable-auth-ntlm="fake smb_lm"
--enable-auth-negotiate=none --enable-auth-digest="file"
--enable-external-acl-helpers="file_userip unix_group wbinfo_group"
--enable-storeio="aufs diskd ufs" --enable-disk-io="Blocking DiskDaemon
DiskThreads Mmapped" --disable-ident-lookups --disable-icap-client
--disable-ecap --disable-snmp --disable-esi

CC & CXX FLAGS

CFLAGS="-xc99 -D_XOPEN_SOURCE=600 -D_XPG6"
CXXFLAGS="-erroff=wvarhidemem,nullref,identexpected -library=stlport4"

LD_LIBRARY_PATH value

LD_LIBRARY_PATH="/usr/local/lib:/usr/lib:/lib"

Squid patches applied:
squid-3.2-11740.patch
squid-3.2-11741.patch

And I needed to change 2 files ...

# vi src/ipc/Queue.h

line 123
    const int theCapacity; ///< maximum number of items, i.e. theBuffer size

    char theBuffer; <----- remove "[]"
};

This change prevent this error:
/bin/bash
 ../../libtool --tag=CXX --mode=compile CC -DHAVE_CONFIG_H
-DDEFAULT_STATEDIR=\"/usr/local/squid/var/run/squid\" -I../..
-I../../include -I../../lib -I../../src -I../../include
-I../../libltdl -I/usr/local/include
-errwarn=%all,no%badargtype2w,no%wbadinit,no%wbadasg -errtags
-D_REENTRANT -lpthread -erroff=wvarhidemem,nullref,identexpected
-library=stlport4 -c -o Queue.lo Queue.cc
libtool: compile: CC
-DHAVE_CONFIG_H -DDEFAULT_STATEDIR=\"/usr/local/squid/var/run/squid\"
-I../.. -I../../include -I../../lib -I../../src -I../../include
-I../../libltdl -I/usr/local/include
-errwarn=%all,no%badargtype2w,no%wbadinit,no%wbadasg -errtags
-D_REENTRANT -lpthread -erroff=wvarhidemem,nullref,identexpected
-library=stlport4 -c Queue.cc -KPIC -DPIC -o .libs/Queue.o
"../../src/ipc/Queue.h", line 123: Error, incompnolink: In this declaration "theBuffer" is of an incomplete type "char[]".
1 Error(s) detected.
make[3]: *** [Queue.lo] Error 1
make[3]: Leaving directory `/export/home/access/squid-3.2.5/src/ipc'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/export/home/access/squid-3.2.5/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/export/home/access/squid-3.2.5/src'
make: *** [all-recursive] Error 1
-bash-3.2#

# vi src/external_acl.cc

line 602 & 603
#if USE_SSL
                DUMP_EXT_ACL_TYPE_FMT(USER_CERT_RAW, " %%USER_CERT_RAW", NULL); <------ added ", NULL"
                DUMP_EXT_ACL_TYPE_FMT(USER_CERTCHAIN_RAW, " %%USER_CERTCHAIN_RAW
", NULL); <----- added ",NULL"

line 612
DUMP_EXT_ACL_TYPE(EXT_LOG);
                DUMP_EXT_ACL_TYPE(TAG);
                DUMP_EXT_ACL_TYPE_FMT(PERCENT, " %%%%", NULL); <------ added ", NULL"
            default:

This change prevent this error:
CC
 -DHAVE_CONFIG_H
-DDEFAULT_CONFIG_FILE=\"/usr/local/squid/etc/squid.conf\"
-DDEFAULT_SQUID_DATA_DIR=\"/usr/local/squid/share\"
-DDEFAULT_SQUID_CONFIG_DIR=\"/usr/local/squid/etc\" -I.. -I../include
-I../lib -I../src -I../include -I../libltdl -I../src -I../libltdl
-I/usr/local/include
-errwarn=%all,no%badargtype2w,no%wbadinit,no%wbadasg -errtags
-D_REENTRANT -lpthread -erroff=wvarhidemem,nullref,identexpected
-library=stlport4 -c -o external_acl.o external_acl.cc
"external_acl.cc", line 602: Error, toofewmargs: Too few arguments in macro DUMP_EXT_ACL_TYPE_FMT.
"external_acl.cc", line 602: Error, extracomma: Trailing comma in a parameter list.
"external_acl.cc", line 603: Error, toofewmargs: Too few arguments in macro DUMP_EXT_ACL_TYPE_FMT.
"external_acl.cc", line 603: Error, extracomma: Trailing comma in a parameter list.
"external_acl.cc", line 612: Error, toofewmargs: Too few arguments in macro DUMP_EXT_ACL_TYPE_FMT.
"external_acl.cc", line 612: Error, extracomma: Trailing comma in a parameter list.
6 Error(s) detected.
make[3]: *** [external_acl.o] Error 2
make[3]: Leaving directory `/export/home/access/squid-3.2.5/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/export/home/access/squid-3.2.5/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/export/home/access/squid-3.2.5/src'
make: *** [all-recursive] Error 1

Thank you in advanced for any kind of help!!!
Regards,
Eric Pérez
México
                                               
Received on Mon Jan 07 2013 - 20:17:52 MST

This archive was generated by hypermail 2.2.0 : Wed Jan 09 2013 - 12:00:19 MST