We recently upgraded our machines to 64-bit Scientific Linux and now I’m getting the following compilation error:
In file included from …/cfitsio/include/fitsio.h:55,
from ./include/VAFITS.h:35,
from /tmp/rootcint_GlITuU.h:5,
from /tmp/yCTdvb_cint.cxx:1:
/usr/local/veritas/root-5.24/lib/root/cint/cint/include/limits.h:8:11: error: missing binary operator before token "("
Error: external preprocessing failed. :0:
!!!Removing out/stage6RootDict.cpp out/stage6RootDict.h !!!
I’m pretty sure that this is a known bug for which a patch already exists according to the changelog:
2009-07-08 08:14 axel
* [r29394] cint/cint/include/limits.h, cint/cint/src/loadfile.cxx:
CPP predicate sizeof is only valid for CINT; limits.h might get
included by external CPP.
Pass G__EXTERNAL_CPP when invoking external CPP to signal that we
cannot rely on CINT's extensions.
Construct limits.h from CPP info if available, fallback on a
32bit int.
However, that post-dates the most recent production ROOT build and there isn’t a development release posted yet beyond that. I desperately need this patch, which can’t affect more than a file or two—how do I get hold of just the files that I need?
Thanks,
Amanda