Xrootd cannot be built in v5-30-00-patches@41667

This is Ubuntu 10.04.3 LTS i686 (32-bit) with gcc 4.4.3 here …
While trying to compile the current ROOT “v5-30-00-patches@41667”, I get …

Making cms component... cd src/XrdCms;\ make all ARCH=i386_linux --no-print-directory Creating executable ../../bin/cmsd g++ -D_ALL_SOURCE -D_REENTRANT -D_GNU_SOURCE -fPIC -rdynamic -Wall -Wno-deprecated -D__linux__ -m32 -O2 ../../obj/XrdCmsAdmin.o ../../obj/XrdCmsBaseFS.o ../../obj/XrdCmsCache.o ../../obj/XrdCmsCluster.o ../../obj/XrdCmsConfig.o ../../obj/XrdCmsJob.o ../../obj/XrdCmsKey.o ../../obj/XrdCmsManList.o ../../obj/XrdCmsManTree.o ../../obj/XrdCmsManager.o ../../obj/XrdCmsMeter.o ../../obj/XrdCmsNash.o ../../obj/XrdCmsNode.o ../../obj/XrdCmsPList.o ../../obj/XrdCmsPrepArgs.o ../../obj/XrdCmsPrepare.o ../../obj/XrdCmsProtocol.o ../../obj/XrdCmsReq.o ../../obj/XrdCmsRouting.o ../../obj/XrdCmsRRQ.o ../../obj/XrdCmsRTable.o ../../obj/XrdCmsState.o ../../obj/XrdCmsSupervisor.o ../../obj/XrdCmsXmiReq.o ../../obj/XrdCmsLogin.o ../../obj/XrdCmsParser.o ../../obj/XrdCmsRRData.o ../../obj/XrdCmsSecurity.o ../../obj/XrdCmsTalk.o -L../../lib -lXrdOss -lXrdFrm -lXrdNet -lXrdOuc -lXrdNetUtil -lXrd -lXrdSys -lnsl -lpthread -lrt -ldl -lc -o ../../bin/cmsd ../../lib/libXrd.a(XrdLink.o): In function `XrdLink::syncStats(int*)': XrdLink.cc:(.text+0x110): undefined reference to `__sync_fetch_and_add_8' XrdLink.cc:(.text+0x145): undefined reference to `__sync_fetch_and_and_8' XrdLink.cc:(.text+0x15f): undefined reference to `__sync_fetch_and_add_8' XrdLink.cc:(.text+0x175): undefined reference to `__sync_fetch_and_add_8' XrdLink.cc:(.text+0x1d1): undefined reference to `__sync_fetch_and_and_8' XrdLink.cc:(.text+0x1eb): undefined reference to `__sync_fetch_and_add_8' XrdLink.cc:(.text+0x201): undefined reference to `__sync_fetch_and_add_8' ../../lib/libXrd.a(XrdLink.o): In function `XrdLink::Stats(char*, int, int)': XrdLink.cc:(.text+0x337): undefined reference to `__sync_fetch_and_or_8' XrdLink.cc:(.text+0x359): undefined reference to `__sync_fetch_and_or_8' XrdLink.cc:(.text+0x37d): undefined reference to `__sync_fetch_and_or_8' XrdLink.cc:(.text+0x3a1): undefined reference to `__sync_fetch_and_or_8' ../../lib/libXrd.a(XrdLink.o): In function `XrdLink::Send(char const*, int)': XrdLink.cc:(.text+0x901): undefined reference to `__sync_fetch_and_add_8' XrdLink.cc:(.text+0x951): undefined reference to `__sync_fetch_and_add_8' XrdLink.cc:(.text+0x9b7): undefined reference to `__sync_fetch_and_add_8' ../../lib/libXrd.a(XrdLink.o): In function `XrdLink::Send(XrdLink::sfVec const*, int)': XrdLink.cc:(.text+0xbe3): undefined reference to `__sync_fetch_and_add_8' ../../lib/libXrd.a(XrdLink.o): In function `XrdLink::Send(iovec const*, int, int)': XrdLink.cc:(.text+0xda4): undefined reference to `__sync_fetch_and_add_8' ../../lib/libXrd.a(XrdLink.o):XrdLink.cc:(.text+0xdf8): more undefined references to `__sync_fetch_and_add_8' follow collect2: ld returned 1 exit status make[5]: *** [../../bin/cmsd] Error 1 make[4]: *** [Linuxall] Error 2 make[3]: *** [all] Error 2 make[2]: *** [XrdCms] Error 2 make[1]: *** [all] Error 2
Note: this problem does not exist in the current “trunk” as the “xrootd” seems to be completely removed from the ROOT’s “trunk” source code.

Exactly the same problem exists in the newest v5-30-00-patches@42529.

[quote]Note: this problem does not exist in the current “trunk” as the “xrootd” seems to be completely removed from the ROOT’s “trunk” source code.[/quote]Yes, xrootd is now used as an external product (See release’s note for v5.32)

Cheers,
Philippe.

Hi,

[quote]This is Ubuntu 10.04.3 LTS i686 (32-bit) with gcc 4.4.3 here …[/quote]For Ubuntu,I recommend using v5.32 or above.

Cheers,
Philippe.

In principle, I always try to build a “full-featured” ROOT (consider me an additional test-build-bot).
However, I don’t need xrootd myself so I stopped trying to build it (i.e.–disable-xrootd").

What concerns xrootd in the v5-30-00-patches branch … if you know it is broken and there is no plan to fix it, why don’t you remove it completely (in the same way as it was done in v5-32 and newer).

Your advice to go for the newest ROOT is fine, except that I have to stick to “collaboration-approved” versions (in particular 5.28 and 5.30 for the time being).
I believe there are many more people in the same situation.

Hi,

See this thread:

Kwyjibo has suggested a workaround that worked for his 64bit machine fine.

Cheers,
Philippe.