> I see in the changelog that ClientInfo.h issue has been fixed. So I gave > squid-3.HEAD-20090510 a whirl. It erred out: > > rm -f .libs/squidS.c .libs/squid.nm .libs/squid.nmS .libs/squid.nmT > g++ -Werror -Wall -Wpointer-arith -Wwrite-strings -Wcomments -g -O2 > .libs/squidS.o -g -o squid AclRegs.o AuthReg.o access_log.o asn.o > AsyncEngine.o cache_cf.o ProtoPort.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 comm_select.o comm_select_win32.o comm_poll.o > comm_epoll.o comm_kqueue.o ConfigOption.o ConfigParser.o debug.o > delay_pools.o DelayId.o DelayBucket.o DelayConfig.o DelayPool.o > DelaySpec.o DelayTagged.o DelayUser.o DelayVector.o NullDelayId.o disk.o > DiskIO/DiskIOModule.o DiskIO/ReadRequest.o DiskIO/WriteRequest.o dlink.o > dns_internal.o errorpage.o ETag.o event.o EventLoop.o external_acl.o > ExternalACLEntry.o fd.o fde.o filemap.o forward.o fqdncache.o ftp.o > gopher.o helper.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 HttpReply.o > HttpRequest.o HttpRequestMethod.o icp_v2.o icp_v3.o int.o internal.o ipc.o > ipcache.o list.o logfile.o main.o mem.o mem_node.o MemBuf.o MemObject.o > mime.o multicast.o neighbors.o Packer.o Parsing.o pconn.o peer_digest.o > peer_select.o peer_sourcehash.o peer_userhash.o redirect.o referer.o > refresh.o RemovalPolicy.o send-announce.o snmp_core.o snmp_agent.o > SquidNew.o ssl_support.o stat.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 > StoreSwapLogData.o Server.o SwapDir.o time.o tools.o tunnel.o unlinkd.o > url.o URLScheme.o urn.o useragent.o wccp.o wccp2.o whois.o wordlist.o > LoadableModule.o LoadableModules.o DiskIO/DiskIOModules_gen.o > repl_modules.o globals.o string_arrays.o > DiskIO/Blocking/BlockingDiskIOModule.o -Wl,-bind_at_load > ./.libs/libsquid.a auth/.libs/libacls.a acl/.libs/libacls.a > acl/.libs/libstate.a auth/.libs/libauth.a acl/.libs/libapi.a > base/.libs/libbase.a ip/.libs/libip.a fs/.libs/libfs.a > icmp/.libs/libicmp.a icmp/.libs/libicmp-core.a > -L/Users/raymont/squid-3.HEAD-20090510/lib repl/libheap.a repl/liblru.a > libBlocking.a ../snmplib/libsnmp.a adaptation/.libs/libadaptation.a -lssl > -lcrypto -lmiscutil -lm -lresolv ../lib/libLtdl/.libs/libltdlc.a -ldl > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::prepareForUse() > acl/.libs/libacls.a(MyPort.o) definition of > ACLStrategised<int>::prepareForUse() in section (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of > ACLStrategised<int>::prepareForUse() in section (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol __ZN14ACLStrategisedIiE13prepareForUseEv.eh > acl/.libs/libacls.a(MyPort.o) definition of absolute > __ZN14ACLStrategisedIiE13prepareForUseEv.eh (value 0x0) > acl/.libs/libacls.a(SslError.o) definition of absolute > __ZN14ACLStrategisedIiE13prepareForUseEv.eh (value 0x0) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::Pool > acl/.libs/libacls.a(MyPort.o) definition of ACLStrategised<int>::Pool > in section (__DATA,__data) > acl/.libs/libacls.a(SslError.o) definition of ACLStrategised<int>::Pool > in section (__DATA,__data) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::match(ACLChecklist*) > acl/.libs/libacls.a(MyPort.o) definition of > ACLStrategised<int>::match(ACLChecklist*) in section (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of > ACLStrategised<int>::match(ACLChecklist*) in section (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::match(int const&) > acl/.libs/libacls.a(MyPort.o) definition of ACLStrategised<int>::match(int > const&)in section (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of > ACLStrategised<int>::match(int const&)in section (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::parse() > acl/.libs/libacls.a(MyPort.o) definition of ACLStrategised<int>::parse() > in section (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of ACLStrategised<int>::parse() > in section (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol __ZN14ACLStrategisedIiE5parseEv.eh > acl/.libs/libacls.a(MyPort.o) definition of absolute > __ZN14ACLStrategisedIiE5parseEv.eh (value 0x0) > acl/.libs/libacls.a(SslError.o) definition of absolute > __ZN14ACLStrategisedIiE5parseEv.eh (value 0x0) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::ACLStrategised(ACLData<int>*, > ACLStrategy<int>*, char const*) > acl/.libs/libacls.a(MyPort.o) definition of > ACLStrategised<int>::ACLStrategised(ACLData<int>*, ACLStrategy<int>*, char > const*)in section (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of > ACLStrategised<int>::ACLStrategised(ACLData<int>*, ACLStrategy<int>*, char > const*)in section (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol __ZN14ACLStrategisedIiEC1EP7ACLDataIiEP11ACLStrategyIiEPKc.eh > acl/.libs/libacls.a(MyPort.o) definition of absolute > __ZN14ACLStrategisedIiEC1EP7ACLDataIiEP11ACLStrategyIiEPKc.eh (value 0x0) > acl/.libs/libacls.a(SslError.o) definition of absolute > __ZN14ACLStrategisedIiEC1EP7ACLDataIiEP11ACLStrategyIiEPKc.eh (value 0x0) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::ACLStrategised(ACLStrategised<int> const&) > acl/.libs/libacls.a(MyPort.o) definition of > ACLStrategised<int>::ACLStrategised(ACLStrategised<int> const&)in section > (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of > ACLStrategised<int>::ACLStrategised(ACLStrategised<int> const&)in section > (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol __ZN14ACLStrategisedIiEC1ERKS0_.eh > acl/.libs/libacls.a(MyPort.o) definition of absolute > __ZN14ACLStrategisedIiEC1ERKS0_.eh (value 0x0) > acl/.libs/libacls.a(SslError.o) definition of absolute > __ZN14ACLStrategisedIiEC1ERKS0_.eh (value 0x0) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::ACLStrategised(ACLData<int>*, > ACLStrategy<int>*, char const*) > acl/.libs/libacls.a(MyPort.o) definition of > ACLStrategised<int>::ACLStrategised(ACLData<int>*, ACLStrategy<int>*, char > const*)in section (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of > ACLStrategised<int>::ACLStrategised(ACLData<int>*, ACLStrategy<int>*, char > const*)in section (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::ACLStrategised(ACLStrategised<int> const&) > acl/.libs/libacls.a(MyPort.o) definition of > ACLStrategised<int>::ACLStrategised(ACLStrategised<int> const&)in section > (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of > ACLStrategised<int>::ACLStrategised(ACLStrategised<int> const&)in section > (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::~ACLStrategised() > acl/.libs/libacls.a(MyPort.o) definition of > ACLStrategised<int>::~ACLStrategised()in section (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of > ACLStrategised<int>::~ACLStrategised()in section (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::~ACLStrategised() > acl/.libs/libacls.a(MyPort.o) definition of > ACLStrategised<int>::~ACLStrategised()in section (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of > ACLStrategised<int>::~ACLStrategised()in section (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol __ZN14ACLStrategisedIiED1Ev.eh > acl/.libs/libacls.a(MyPort.o) definition of absolute > __ZN14ACLStrategisedIiED1Ev.eh (value 0x0) > acl/.libs/libacls.a(SslError.o) definition of absolute > __ZN14ACLStrategisedIiED1Ev.eh (value 0x0) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::~ACLStrategised() > acl/.libs/libacls.a(MyPort.o) definition of > ACLStrategised<int>::~ACLStrategised()in section (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of > ACLStrategised<int>::~ACLStrategised()in section (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::operator=(ACLStrategised<int> const&) > acl/.libs/libacls.a(MyPort.o) definition of > ACLStrategised<int>::operator=(ACLStrategised<int> const&)in section > (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of > ACLStrategised<int>::operator=(ACLStrategised<int> const&)in section > (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::operator delete(void*) > acl/.libs/libacls.a(MyPort.o) definition of ACLStrategised<int>::operator > delete(void*)in section (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of > ACLStrategised<int>::operator delete(void*)in section (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::operator new(unsigned long) > acl/.libs/libacls.a(MyPort.o) definition of ACLStrategised<int>::operator > new(unsigned long)in section (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of > ACLStrategised<int>::operator new(unsigned long)in section (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::typeString() const > acl/.libs/libacls.a(MyPort.o) definition of > ACLStrategised<int>::typeString() constin section (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of > ACLStrategised<int>::typeString() constin section (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol __ZNK14ACLStrategisedIiE10typeStringEv.eh > acl/.libs/libacls.a(MyPort.o) definition of absolute > __ZNK14ACLStrategisedIiE10typeStringEv.eh (value 0x0) > acl/.libs/libacls.a(SslError.o) definition of absolute > __ZNK14ACLStrategisedIiE10typeStringEv.eh (value 0x0) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::requiresReply() const > acl/.libs/libacls.a(MyPort.o) definition of > ACLStrategised<int>::requiresReply() constin section (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of > ACLStrategised<int>::requiresReply() constin section (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::requiresRequest() const > acl/.libs/libacls.a(MyPort.o) definition of > ACLStrategised<int>::requiresRequest() constin section (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of > ACLStrategised<int>::requiresRequest() constin section (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::dump() const > acl/.libs/libacls.a(MyPort.o) definition of ACLStrategised<int>::dump() > constin section (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of ACLStrategised<int>::dump() > constin section (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol __ZNK14ACLStrategisedIiE4dumpEv.eh > acl/.libs/libacls.a(MyPort.o) definition of absolute > __ZNK14ACLStrategisedIiE4dumpEv.eh (value 0x0) > acl/.libs/libacls.a(SslError.o) definition of absolute > __ZNK14ACLStrategisedIiE4dumpEv.eh (value 0x0) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::clone() const > acl/.libs/libacls.a(MyPort.o) definition of ACLStrategised<int>::clone() > constin section (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of ACLStrategised<int>::clone() > constin section (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::empty() const > acl/.libs/libacls.a(MyPort.o) definition of ACLStrategised<int>::empty() > constin section (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of ACLStrategised<int>::empty() > constin section (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol ACLStrategised<int>::valid() const > acl/.libs/libacls.a(MyPort.o) definition of ACLStrategised<int>::valid() > constin section (__TEXT,__text) > acl/.libs/libacls.a(SslError.o) definition of ACLStrategised<int>::valid() > constin section (__TEXT,__text) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol typeinfo for ACLStrategised<int> > acl/.libs/libacls.a(MyPort.o) definition of typeinfo for > ACLStrategised<int>in section (__DATA,__const) > acl/.libs/libacls.a(SslError.o) definition of typeinfo for > ACLStrategised<int>in section (__DATA,__const) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol typeinfo name for ACLStrategised<int> > acl/.libs/libacls.a(MyPort.o) definition of typeinfo name for > ACLStrategised<int>in section (__TEXT,__cstring) > acl/.libs/libacls.a(SslError.o) definition of typeinfo name for > ACLStrategised<int>in section (__TEXT,__cstring) > /usr/libexec/gcc/i686-apple-darwin8/4.2.1/ld: multiple definitions of > symbol CbDataList<int>::CBDATA_CbDataList > asn.o definition of CbDataList<int>::CBDATA_CbDataList in section > (__DATA,__data) > acl/.libs/libacls.a(SslErrorData.o) definition of > CbDataList<int>::CBDATA_CbDataList in section (__DATA,__data) > collect2: ld returned 1 exit status > rm -f .libs/squidS.o > make[3]: *** [squid] Error 1 > make[2]: *** [all-recursive] Error 1 > make[1]: *** [all] Error 2 > make: *** [all-recursive] Error 1 > > These appear to be due to "duplicate template instantiation", and a > combination of strict enforcement by Apple and GCC 4.x. After trying a > variety of techniques such as extern, inline, or pragma > interface/implemenation in the header files, I finally found the following > workaround that got it built successfully: > > 1. In src/acl/MyPort.cc, comment out: > template class ACLStrategised<int>;
Fixed. > > 2. In src/asn.cc, comment out: > template cbdata_type CbDataList<int>::CBDATA_CbDataList; I can't see how or what is clashing with CbDataList<int> though, is there any better info when just the (1) above is done? Amos