Re: rootcint error

From: Philippe Canal <pcanal_at_fnal.gov>
Date: Mon, 17 May 2010 12:02:12 -0500


Hi Akira,

The problem is fixed by revision 33536 of the trunk.

You can work around the problem by preceding your headers with:

#ifdef __CINT__
class __builtin_va_list;
#define __asm(X)
#endif

Cheers,
Philippe.

On 5/15/10 11:57 PM, OKUMURA, Akira wrote:
> Hello Philippe,
>
> Thanks a lot for your advise. But 5.27/02 still causes the same error. Any idea? I built this version from the source code.
> ftp://root.cern.ch/root/root_v5.27.02.source.tar.gz
>
> % $ROOTSYS/bin/rootcint -f src/TargetUSBDict.cxx -c -p inc/TBasePacket.h inc/TCommandPacket.h inc/TPacketDataWord.h inc/TResponsePacket.h inc/TSampleData.h inc/TTargetUtil.h inc/TUSBInterface.h inc/LinkDef.h
> Error: class,struct,union or type __builtin_va_list not defined /usr/include/i386/_types.h:96:
> Error: Too many '}' /usr/include/sys/_select.h:57:
> Error: Symbol pthread_cond_teCondVar is not defined in current scope inc/ftd2xx.h:68:
> Error: Symbol pthread_mutex_teMutex is not defined in current scope inc/ftd2xx.h:69:
> Error: Missing closing brace for the block opened around line 200.
> Error: Unexpected end of file (G__exec_statement()) /var/tmp/tmp.0.Fz179e_cint.cxx:2:
> Warning: Error occurred during reading source files
> Warning: Error occurred during dictionary source generation
> !!!Removing src/TargetUSBDict.cxx src/TargetUSBDict.h !!!
> Error: /usr/local/root/bin/rootcint: error loading headers...
>
> % $ROOTSYS/bin/root
> *******************************************
> * *
> * W E L C O M E to R O O T *
> * *
> * Version 5.27/02 26 April 2010 *
> * *
> * You are welcome to visit our Web site *
> * http://root.cern.ch *
> * *
> *******************************************
>
> ROOT 5.27/02 (trunk_at_33229, Apr 27 2010, 11:38:29 on macosx64)
>
> CINT/ROOT C/C++ Interpreter version 5.17.00, Dec 21, 2008
> Type ? for help. Commands must be C++ statements.
> Enclose multiple statements between { }.
>
> OKUMURA, Akira oxon@{astro.isas.jaxa.jp,stanford.edu}
> Institute of Space and Astronautical Science (ISAS/JAXA)
> ==========================
> Now at KIPAC/SLAC/Stanford
> Varian Physics #306
> 382 Via Pueblo Mall, MC 406 Stanford, CA94305
> TEL 650-736-0971/FAX 650-724-5065
> Skype : okumura.akira
>
> On 2010/05/15, at 20:56, Philippe Canal wrote:
>
>
>> Hi,
>>
>> If I am not mistaken, this problem has been solved in ROOT v5.27/02 and in the patch branch of v5.26 (i.e. it will be in v5.26/00c). So I recommend that you upgrade to v5.27/02.
>>
>> Cheers,
>> Philippe.
>>
>> On 5/15/10 8:59 PM, OKUMURA, Akira wrote:
>>
>>> Hello ROOTers,
>>>
>>> I am writing a ROOT program which controls USB chips provided by a private company FTDI. When I compile my code which includes ftd2xx.h written by FTDI, rootcint outputs the following errors.
>>>
>>> $ make
>>> Generating dictionary ...
>>> rootcint -f src/TargetUSBDict.cxx -c -p inc/TBasePacket.h inc/TCommandPacket.h inc/TPacketDataWord.h inc/TResponsePacket.h inc/TSampleData.h inc/TTargetUtil.h inc/TUSBInterface.h inc/LinkDef.h
>>> Error: class,struct,union or type __builtin_va_list not defined /usr/include/i386/_types.h:96:
>>> Error: Too many '}' /usr/include/sys/_select.h:57:
>>> Error: Symbol pthread_cond_teCondVar is not defined in current scope inc/ftd2xx.h:68:
>>> Error: Symbol pthread_mutex_teMutex is not defined in current scope inc/ftd2xx.h:69:
>>> Error: Missing closing brace for the block opened around line 200.
>>> Error: Unexpected end of file (G__exec_statement()) /var/tmp/tmp.0.NXjaqd_cint.cxx:2:
>>> Warning: Error occurred during reading source files
>>> Warning: Error occurred during dictionary source generation
>>> !!!Removing src/TargetUSBDict.cxx src/TargetUSBDict.h !!!
>>> Error: rootcint: error loading headers...
>>> make: *** [src/TargetUSBDict.cxx] Error 1
>>>
>>> I expected that this kind of errors were not generated if I ran rootcint with an option -p. But it didn't work in my situation. Then I added following to my header file.
>>>
>>> #ifdef __CINT__
>>> #undef __GNUC__
>>> #define _SYS__SELECT_H_
>>> struct pthread_cond_t;
>>> struct pthread_mutex_t;
>>> #endif
>>>
>>> Thanks to these lines, some Darwin headers which cause rootcint errors are ignored when __CINT__ is defined. I believe they do not have any obvious side effect in my case.
>>>
>>> But I was wondering if there were better solution to remove this rootcint errors. I might be doing something wrong. Could anyone give me any advise, please?
>>>
>>> I am using OS X 10.6.3, ROOT 5.26.00b, and GCC 4.2.1. You can get ftd2xx.h from FTDI's official page.
>>> http://www.ftdichip.com/Drivers/D2XX/MacOSX/UniBin/D2XX0.1.7.dmg
>>>
>>> Regards,
>>>
>>> OKUMURA, Akira oxon@{astro.isas.jaxa.jp,stanford.edu}
>>> Institute of Space and Astronautical Science (ISAS/JAXA)
>>> ==========================
>>> Now at KIPAC/SLAC/Stanford
>>> Varian Physics #306
>>> 382 Via Pueblo Mall, MC 406 Stanford, CA94305
>>> TEL 650-736-0971/FAX 650-724-5065
>>> Skype : okumura.akira
>>>
>>>
>>>
>>
>
Received on Mon May 17 2010 - 19:02:20 CEST

This archive was generated by hypermail 2.2.0 : Mon May 17 2010 - 23:50:02 CEST