読者です 読者をやめる 読者になる 読者になる

ROOT の build で xrootd でこける

Snow Leopard で ROOT を build するときに、xrootd の build の箇所でこけた。

Creating executable ../../bin/xrdgsiproxy
g++ -m64 -D_REENTRANT -D_GNU_SOURCE -Wall -D__macos__  -Wno-deprecated -O2 ../../obj/XrdSecgsiProxy.o -lssl -lcrypto  -lz ../../lib/libXrdCryptossl.a ../../lib/libXrdCrypto.a  ../../lib/libXrdSut.a ../../lib/libXrdNet.a     ../../lib/libXrdOuc.a ../../lib/libXrdNetUtil.a ../../lib/libXrdSys.a -ldl -lc -o ../../bin/xrdgsiproxy
Undefined symbols:
  "_X509_NAME_hash_old", referenced from:
      XrdCryptosslX509::SubjectHash()       in libXrdCryptossl.a(XrdCryptosslX509.o)
      XrdCryptosslX509::IssuerHash()       in libXrdCryptossl.a(XrdCryptosslX509.o)
      XrdCryptosslX509Req::SubjectHash()       in libXrdCryptossl.a(XrdCryptosslX509Req.o)
      XrdCryptosslX509Crl::IssuerHash()       in libXrdCryptossl.a(XrdCryptosslX509Crl.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[5]: *** [../../bin/xrdgsiproxy] Error 1
make[4]: *** [Darwinall] Error 2
make[3]: *** [all] Error 2
make[2]: *** [XrdSecgsi] Error 2
make[1]: *** [all] Error 2
*** Error condition reported by make (rc = 2):
make: *** [net/xrootd/src/xrootd/LastBuild.d] Error 1

http://www.misho-web.com/phys/osx.html を参考にして、OpenSSL の場所を MacPorts のものに指定して解決。

./configure --enable-minuit2 --with-ssl=/opt/local --with-opengl-libdir=/opt/X11/lib --with-x11-libdir=/opt/local/lib/ --with-xpm-libdir=/opt/local/lib/ --with-xft-libdir=/opt/local/lib/  --with-xext-libdir=/opt/local/lib/
make distclean-xrootd
make
    • with-ssl 以外のところは、MacPorts を使っている場合に X11 の使用で seg fault を起こすのを回避するため。多分、ROOT v5.29 からは configure が更新されるので解決するはず。5.28.00 までは、この /opt/local/lib の指定が必要。ここ参照。