Installing software from root5 to root6

Dear ROOT experts,

I have been asked to install a software for data reconstruction on root 6.10 systems. This software is basically a set of ROOT libraries which can be installed in root 5 versions (tested personally with root 5.34).

Trying to install with ROOT6 I get a lot of errors, some due to more stringent c++ checks, others due to libraries. For example, it looks for G__ci.h, which If I have understood correctly refers to CINT compiler, which has been replaced by CLING.

I could not find a tutorial about converting code from root5 to root6. Is it difficult? Can it be done without changing too much the source libraries?
I would really appreciate some help on this issue, sorry for the trouble.

Best regards,
Antonio

Hi Antonio,

could you make a list of well defined items which you are encountering issues with? Once a clear description is provided, we can provide support to solve them one by one.

Cheers,
Danilo

Dear Danilo,

I sincerely do not know what are the well defined items, but I can try to make a clear list the main errors:

#include “G__ci.h” LEADS TO File or directory not found:

many istances of invalid use of incomplete type ‘class TBuffer’ LEADS TO forward declaration of class TBuffer in ROOT/include/Rtypes.h:

using::asin LEADS TO ::asin has not been declared (likely atan, atan2, etc.)

constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value __is_integer was not declared in this scope LEADS TO suggested alternative struct __is_integer in /usr/include/c++/6/bits/cpp_type_traits.h.

These are the main errors.

Thank you very much for your help,
Antonio

ok,

so, let’s tackle your items in order.
What is the file “G__ci.h” file?

Cheers,
D

It’s clear what “G__ci.h” is, but it’s completely unclear why YOU include it.

#include <cmath>
using std::asin;
using std::atan;
using std::atan2;

No idea where “__gnu_cxx” comes from (I assume it’s a result of the mess related to including “G__ci.h”).

I think you need to show your whole source code so that one can inspect it.