Building 64 *and* 32 bit versions of ROOT on OS X.6


I am trying to upgrade the installation of ROOT on my laptop from 5.18 to 5.26. In my previous 5.18 installation of ROOT I compiled two sets of libraries - first configuring with

./configure macosx --prefix=/usr/local

and then

./configure macosx64 --prefix=/usr/local

I then used the lipo command to stitch the resulting two sets of 32 and 64 bit libraries together to give a single “universal” set of ROOT libraries that would link against both 32 and 64 bit libraries elsewhere on the system. This is quite useful during this transitional period, where some libraries are 32 bit and some are 64 (e.g. someone just sent me code that specifies -m32 throughout, which unless I alter I will need a 32 bit version of ROOT).

Of course, I tried the same trick with ROOT 5.26, but it doesn’t seem to want to compile a 32 bit set of libraries if I specify “macosx” to configure. I get the error:

ld: warning: in net/xrootd/src/xrootd/lib/libXrd.a, file is not of required architecture

and then a lot of undefined symbols

“XrdLink::setID(char const*, int)”, referenced from:
XrdProofdClientMgr::Login(XrdProofdProtocol*) in XrdProofdClientMgr.o


Is there a way to force a 32 bit compilation under OS X 10.6, or even better could a universal build of ROOT be incorporated into the build system for OS X?




please use the trunk which compiles without problems for macosx and macosx64.

Cheers, Fons.