Re: Compile problem on CentOS only when building RPM??

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Tue, 30 Jul 2013 09:38:11 +1200

On 29/07/2013 11:05 p.m., Eliezer Croitoru wrote:
> I am building the new beta and it seems to configure and build nicely on
> CentOS 6.4 x64 but only when building manually.
> When I built it using the squid.spec that was being used with 3.3.8 I
> started getting some SNMP problem.
> output:
> -------
> libtool: link: g++ -I/usr/include/libxml2 -Wall -Wpointer-arith
> -Wwrite-strings -Wcomments -Wshadow -Werror -pipe -D_REENTRANT -O2 -g
> -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
> --param=ssp-buffer-size=4 -m64 -mtune=generic -fpie -std=c++0x
> .libs/squidS.o -pie -o squid AclRegs.o AuthReg.o AccessLogEntry.o
> AsyncEngine.o YesNoNone.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 fatal.o fd.o fde.o
> filemap.o fqdncache.o ftp.o FwdState.o gopher.o helper.o
> HelperChildConfig.o HelperReply.o htcp.o http.o HttpHdrCc.o
> HttpHdrRange.o HttpHdrSc.o HttpHdrScTarget.o HttpHdrContRange.o
> HttpHeader.o HttpHeaderTools.o HttpBody.o HttpMsg.o HttpParser.o
> HttpReply.o RequestFlags.o HttpRequest.o HttpRequestMethod.o icp_v2.o
> icp_v3.o int.o internal.o ipc.o ipcache.o SquidList.o main.o
> MasterXaction.o mem.o mem_node.o MemBuf.o MemObject.o mime.o
> mime_header.o multicast.o neighbors.o Notes.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 snmp_core.o snmp_agent.o SquidMath.o
> SquidNew.o stat.o StatCounters.o StatHist.o String.o StrList.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 LogTags.o
> lookup_t.o repl_modules.o swap_log_op.o DiskIO/AIO/AIODiskIOModule.o
> DiskIO/Blocking/BlockingDiskIOModule.o
> DiskIO/DiskDaemon/DiskDaemonDiskIOModule.o
> DiskIO/DiskThreads/DiskThreadsDiskIOModule.o
> DiskIO/IpcIo/IpcIoDiskIOModule.o DiskIO/Mmapped/MmappedDiskIOModule.o
> -Wl,--export-dynamic auth/.libs/libacls.a ident/.libs/libident.a
> acl/.libs/libacls.a acl/.libs/libstate.a auth/.libs/libauth.a libAIO.a
> libBlocking.a libDiskDaemon.a libDiskThreads.a libIpcIo.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
> http/.libs/libsquid-http.a icmp/.libs/libicmp.a
> icmp/.libs/libicmp-core.a log/.libs/liblog.a format/.libs/libformat.a
> repl/libheap.a repl/liblru.a -lpthread -lcrypt
> adaptation/.libs/libadaptation.a esi/.libs/libesi.a
> ../lib/libTrie/libTrie.a -lxml2 -lexpat ssl/.libs/libsslsquid.a
> ssl/.libs/libsslutil.a snmp/.libs/libsnmp.a ../snmplib/libsnmplib.a
> ../lib/.libs/libmisccontainers.a ../lib/.libs/libmiscencoding.a
> ../lib/.libs/libmiscutil.a -lssl -lcrypto -lgssapi_krb5 -lkrb5
> -lk5crypto -lcom_err -L/root/rpmbuild/BUILD/squid-3.4.0.1/compat
> -lcompat-squid -lnsl -lresolv -lcap -lrt
> -L/root/rpmbuild/BUILD/squid-3.4.0.1 -lltdl
> /usr/bin/ld: ../snmplib/libsnmplib.a(snmp_vars.o): relocation
> R_X86_64_32 against `.rodata' can not be used when making a shared
> object; recompile with -fPIC
> ../snmplib/libsnmplib.a: could not read symbols: Bad value
> collect2: ld returned 1 exit status
> libtool: link: rm -f ".libs/squidS.o"
> make[3]: *** [squid] Error 1
> make[3]: Leaving directory `/root/rpmbuild/BUILD/squid-3.4.0.1/src'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory `/root/rpmbuild/BUILD/squid-3.4.0.1/src'
> make[1]: *** [all] Error 2
> make[1]: Leaving directory `/root/rpmbuild/BUILD/squid-3.4.0.1/src'
> make: *** [all-recursive] Error 1
> error: Bad exit status from /var/tmp/rpm-tmp.oTuxzA (%build)
> --------
> and all the related snmp packages are installed since it builds on non
> RPM Environment.
>
> Is it a bug or just that the spec needs new configuration? or other thing?

It looks like a packaging thing. Possibly the -fPIC flag being stripped
out wrongly?
That flag is required for libraries, it can be sent to the compiler
alongside -fPIE -pie but is not interchangeable.

Amos
Received on Mon Jul 29 2013 - 21:38:16 MDT

This archive was generated by hypermail 2.2.0 : Tue Jul 30 2013 - 12:00:50 MDT