Error compiling root_v5.26.00b on MacOS X Tiger; Fail Xrootd

Dear ROOTers

For some reason it is still not possible to compile the latest patch file root_v5.26.00b.source.tar.gz on
MacOS X Tiger, I get the following error:

Compiling XrdSecProtocolssl.cc
g++ -c -Iinclude -DR__SSL -DOPENSSL_NO_KRB5 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -m32 -D_REENTRANT -D_GNU_SOURCE -Wall -D__macos__  -Wno-deprecated-declarations -undefined dynamic_lookup -multiply_defined suppress  -O2 -DXrdDEBUG=0 -DHAVE_STRLCPY   -DHAVE_LIBZ   -I. -I.. -o ../../obj/XrdSecProtocolssl.o XrdSecProtocolssl.cc
XrdSecProtocolssl.cc: In member function 'virtual void XrdSecProtocolssl::secClient(int, XrdOucErrInfo*)':
XrdSecProtocolssl.cc:263: error: invalid conversion from 'char* (*)()' to 'char* (*)(...)'
XrdSecProtocolssl.cc:263: error:   initializing argument 1 of 'char* PEM_ASN1_read(char* (*)(...), const char*, FILE*, char**, int (*)(char*, int, int, void*), void*)'
XrdSecProtocolssl.cc:490: error: invalid conversion from 'int (*)()' to 'int (*)(...)'
XrdSecProtocolssl.cc:490: error:   initializing argument 1 of 'int PEM_ASN1_write(int (*)(...), const char*, FILE*, char*, const EVP_CIPHER*, unsigned char*, int, int (*)(char*, int, int, void*), void*)'
make[5]: *** [../../obj/XrdSecProtocolssl.o] Error 1
make[4]: *** [Darwinall] Error 2
make[3]: *** [all] Error 2
make[2]: *** [XrdSecssl] Error 2
make[1]: *** [all] Error 2
*** Error condition reported by make (rc = 2):
make: *** [net/xrootd/src/xrootd/LastBuild.d] Error 1
rm core/utils/src/RStl_tmp.cxx core/utils/src/rootcint_tmp.cxx

Trying to use ‘./configure macosx --with-xrootd-opts="–disable-secssl"’, as suggested by Gerri Ganis,
did result in the same error message, I had to “–disable-xrootd” as usual to be able to compile root.

Best regards
Christian

Hi,

The fix is being provided by the authors and tested by Fons who has a Tiger machine where to test. As soon as we will have it we will port it back to the 5.26.00 and 5.22.00 branches.

This is surprising: can you do the following

$ make distclean-rootd
$ ./configure macosx --with-xrootd-opts="--disable-secssl"
$ make all-xrootd > make-xrd.log

and post make-xrd.log?

G. Ganis

Dear Gerri,

Please find attached the output which I had to rename to “make-xrd_log.txt” otherwise roottalk would not accept it.

Best regards
Christian
make-xrd_log.txt (1.54 KB)

Dear Christian,

Thanks for the report but unfortunately I made a typo in my instructions (‘make distclean-rootd’ instead of ‘make distclean-xrootd’), so the relevant parts (the arguments to the Xrootd configure) are not there.
Could you repeat the exercise doing this:

$ make distclean-xrootd
$ ./configure macosx --with-xrootd-opts="--disable-secssl"
$ make all-xrootd > make-xrd_log.txt

Sorry the inconvenience,
Gerri

Dear Gerri,

Please find enclosed once again the log-file. However, strangely this time root compiled w/o problems.

Best regards
Christian
make-xrd_log.txt (117 KB)

Dear Christian,

Ok, this is the behaviour that I was expecting.

Hopefully we will have the real fix soon so that the workaround will not be needed anymore.

Gerri

OK, thanks, Christian

Dear Christian,

The problem with secssl on Tiger should be fixed in the trunk; I have ported the fixes to the ‘5-26-00-patches’ and ‘5-22-00-patches’ branches, so that the next tags on those branches (e.g. 5-26-00c) will also include them.

Please let us know if you have the opportunity to try.

Gerri

Dear Gerri,

I have just downloaded the newest version from svn and tried to compile it using:

$ ./configure macosx
$ make

I get this error message:

bin/rmkdepend -R -fmisc/memstat/src/TMemStat.d -Y -w 1000 -- -m32 -pipe -W -Wall -Woverloaded-virtual -fsigned-char -fno-common -Iinclude   -D_REENTRANT -D__cplusplus -- misc/memstat/src/TMemStat.cxx
g++ -O2 -m32 -pipe -W -Wall -Woverloaded-virtual -fsigned-char -fno-common -Iinclude   -D_REENTRANT -o misc/memstat/src/TMemStat.o -c misc/memstat/src/TMemStat.cxx
bin/rmkdepend -R -fmisc/memstat/src/TMemStatMng.d -Y -w 1000 -- -m32 -pipe -W -Wall -Woverloaded-virtual -fsigned-char -fno-common -Iinclude   -D_REENTRANT -D__cplusplus -- misc/memstat/src/TMemStatMng.cxx
g++ -O2 -m32 -pipe -W -Wall -Woverloaded-virtual -fsigned-char -fno-common -Iinclude   -D_REENTRANT -o misc/memstat/src/TMemStatMng.o -c misc/memstat/src/TMemStatMng.cxx
bin/rmkdepend -R -fmisc/memstat/src/TMemStatBacktrace.d -Y -w 1000 -- -m32 -pipe -W -Wall -Woverloaded-virtual -fsigned-char -fno-common -Iinclude   -D_REENTRANT -D__cplusplus -- misc/memstat/src/TMemStatBacktrace.cxx
g++ -O2 -m32 -pipe -W -Wall -Woverloaded-virtual -fsigned-char -fno-common -Iinclude   -D_REENTRANT -o misc/memstat/src/TMemStatBacktrace.o -c misc/memstat/src/TMemStatBacktrace.cxx
misc/memstat/src/TMemStatBacktrace.cxx:19:22: error: execinfo.h: No such file or directory
misc/memstat/src/TMemStatBacktrace.cxx: In function 'size_t memstat::getBacktrace(void**, size_t, Bool_t)':
misc/memstat/src/TMemStatBacktrace.cxx:139: error: 'backtrace' was not declared in this scope
make: *** [misc/memstat/src/TMemStatBacktrace.o] Error 1
rm core/utils/src/RStl_tmp.cxx core/utils/src/rootcint_tmp.cxx

Then I did:

$ make distclean-xrootd
$ ./configure macosx --with-xrootd-opts="--disable-secssl"
$ make all-xrootd > make-xrd_log.txt 

Now I get this error message:

/usr/bin/ld: Undefined symbols:
XrdSysTimer::Midnight(long)
XrdSysThread::threadNumkey
XrdSysThread::doInit()
XrdSysThread::initDone
collect2: ld returned 1 exit status
make[5]: *** [../../bin/testserver] Error 1
make[4]: *** [Darwinall] Error 2
make[3]: *** [all] Error 2
make[2]: *** [XrdSec] Error 2
make[1]: *** [all] Error 2
make: *** [net/xrootd/src/xrootd/LastBuild.d] Error 1

The log-file is attached.

Best regards
Christian
make-xrd_log.txt (18.4 KB)

I am having the same problem, where root fails with the error /usr/bin/ld: Undefined symbols:
XrdSysTimer::Midnight(long), etc. I’m running Mac OSX 10.5.8, trying to install Root version 5.27. Was anyone able to fix this issue?

This is very likely a new regression in the latest xrootd which is part of the latest ROOT. We are not anymore compiling on Tiger by default. I’ll check tomorrow on Tiger.

Cheers, Fons.

I’m running on leopard though, so i don’t think it’s a tiger specific issue.