Dear Gora, Thank you for reporting this. I found a problem in CINT when you use it in typedef. I'll fix this in cint5.14.10. I understand that you do not want to change system header file. Workaround is to copy it into other directory, change the __quad_t difition and give the directory to rootcint by -I. $ mkdir $HOME/dummyinclude $ cp /usr/include/gnu/types.h $HOME/dummyinclude/types.h $ ### edit types.h as you like. For example, #ifndef __CINT__ typedef long long int __quad_t; #else typedef struct { long int __val[2]; } __quad_t; #endif $ rootcint ... ... .. -I$HOME/dummyinclude ... ... ... Thank you Masaharu Goto ====================================================================== Hi, I am having a problem using version 2.22.09 on a Linux Redhat 5.2 installation with version 2.0.36 of the kernel. I have a ROOT class that is a wrapper around a GPIB device driver written by someone else that uses /usr/include/gnu/types.h. When using gcc, this header file defines a type, __quad_t as: typedef long long int __quad_t; and, later uses, typedef __quad_t *__qaddr_t; When I try to generate a dictionary with the command, $(ROOTSYS)/bin/rootcint -f GPIBDict.cxx -c -p GPIB.h GPIBLinkDef.h rootcint does not like the long long int part, giving an error message: Error: class,struct,union or type __quad_t not defined FILE:/usr/include/gnu/types.h LINE:42 (line 42 is where the *__qaddr_t type is defined). I am positive that the problem is with the long long part as if I use the alternate (non-gcc) definition of __quad_t, viz., typedef struct { long int __val[2]; } __quad_t; everything is fine. The obvious workaround is to use the struct version, but as I only have gcc, that would mean changing the system header files, which I am loath to do. Any suggestions are welcome. Thanks in advance. Regards, Gora
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:36 MET