I installed ROOT 5.22 on Fedora 10 ( v86-64) using gcc 4.3.2 without problems.
When I tried to install the same ROOT using Intel icc 11.0.74 the next error arose:
cint/cint/src/dict/gcc3strm.cxx(317): error: class “std::fpos<mbstate_t>” has no member "operator!="
G__letint(result7, 103, (long) ((fpos<mbstate_t>) G__getstructoffset())->operator!=((fpos<mbstate_t>*) libp->para[0].ref));
^
cint/cint/src/dict/gcc3strm.cxx(608): warning #191: type qualifier is meaningless on cast type
, (const char_traits::char_type) G__int(libp->para[2])));
^
Is it correct Makefile.linuxicc. I wrote about Fedora-64 and believe that the corresponding file is Makefile.linuxx8664icc. Nevertheless I modified both files as it was described.
The 1st result is
Hi,
I have the same issue with root 5.23.04 and icc 11.0.83, always on Fedora 10 x86-64.
Following the suggestions given for addressing a similar issue concerning the compilation of the boost C++ libraries in this environment, I found a possible workaround:
compile adding the following option to the compile flags
In this way the unresolved symbol __sync_fetch_and_add_4 disappears from libThread.so, as it is now substituted with the resolved one _InterlockedExchangeAdd (which should perform the same operation).
The use of ‘__sync_fetch_and_add’ is due to the file /usr/include/c++/4.3.2/ext/atomicity.h, which is included by the root file core/thread/inc/TAtomicCountGcc.h. But the function __sync_fetch_and_add is not provided by the standard C++ library, as in gcc 4.3 it is a built-in function (and this function seems to be missing in icc 11.0 for intel64).