ROOT parsing issue?

Dear ROOT’ers
I had my class with worked perfectly with ROOT 6. Recently I decided to update this class. In ROOT 5 it works. When I build this with ROOT 6 I don’t get any warnings/errors but when I call in interpreter:

I get errors like:

[code]/cmath’ modified since it was first processed
#include
^
Error in TInterpreter::AutoParse: Error parsing payload code for class MyClass with content:
#ifndef G__VECTOR_HAS_CLASS_ITERATOR
#define G__VECTOR_HAS_CLASS_ITERATOR 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H

[/code]
Similar error occurs each time when I call class that is in MyClass.so file, other classes that belong to this project works fine (so this is not error caused by environmental paths and so one). I could rebuild ROOT but it will take time, any idea how to solve this problem?

Hi,

this seems like an issue linked to the update of your system, xcode or compiler.
Root builds a cache for the most used headers, including cmath, in the form of a Pre Compiled Header (pch): this allows to reduce the memory footprint and runtime of the process. The pch though needs to be “more recent” than the headers it was built from.

How did you install ROOT? If you compiled it from scratch, could you try and delete this file “etc/allDict.cxx.pch” to then trigger the build again (it should take a moment to rebuild).

Cheers,
D

Hi,
I managed to fix this by complete reinstallation of ROOT.

Hi,

glad to hear that you found a solution to the issue.
For the record, was this indeed due to an upgrade of the system/libstdc++ headers?

Cheers,
Danilo