From: Nikita Andreev (lestat_at_kemsu.ru)
Date: Sat Apr 10 2010 - 23:25:34 PDT
Paul, Works perfect. Thanks again. Nikita ----- Original Message ----- From: "Paul H. Hargrove" <PHHargrove_at_lbl_dot_gov> To: "Nikita Andreev" <[email protected]> Cc: <upc-users_at_lbl_dot_gov> Sent: Sunday, April 11, 2010 12:35 PM Subject: Re: BUPC headers > Nikita, > > Most of the upc_*.h headers are only suitable for inclusion in UPC code > that will pass though our source-to-source translator. For instance, your > tool will be compiled by a C compiler that will not be able to parse > shared keyword in the prototypes of the collective operations. That is the > reason for the check for the "initial preprocess". > > The UPC runtime library has the same need as you to deal with various > UPC_* constants. For that reason, these constants and several typedefs are > all in pure C headers with names like [something]_bits.h. In your case you > probably need to include upcr_preinclude/upc_collective_bits.h (which > happens to include upc_bits.h). > > -Paul > > Nikita Andreev wrote: >> Hello Paul and all, >> I'm writing the performance optimization instrument and I need to parse >> collective operations synchronization flags. In my case they're encoded >> in int variable which I get from GASP. I do parsing in separate C (not >> UPC) utility and apparently I need to include upc_collective.h to get >> UPC_{IN,OUT}_{NO,MY,ALL}SYNC declarations from there. But when I include >> upc_collective.h (I also tried to include upc.h before that) from >> opt_inst/include/upcr_preinclude I get: >> In file included from utility.c:20: >> /opt/bupc-runtime-2.8.0-gasp/opt_inst/include/upcr_preinclude/upc_collective.h:5:2: >> error: #error This file should only be included during initial preprocess >> /opt/bupc-runtime-2.8.0-gasp/opt_inst/include/upcr_preinclude/upc_collective.h:9:2: >> error: #error Bad feature macro predefinition >> In file included from utility.c:20: >> /opt/bupc-runtime-2.8.0-gasp/opt_inst/include/upcr_preinclude/upc_collective.h:51: >> error: expected ‘)’ before ‘void’ >> /opt/bupc-runtime-2.8.0-gasp/opt_inst/include/upcr_preinclude/upc_collective.h:52: >> error: expected ‘)’ before ‘void’ >> /opt/bupc-runtime-2.8.0-gasp/opt_inst/include/upcr_preinclude/upc_collective.h:53: >> error: expected ‘)’ before ‘void’ >> /opt/bupc-runtime-2.8.0-gasp/opt_inst/include/upcr_preinclude/upc_collective.h:54: >> error: expected ‘)’ before ‘void’ >> ... >> By now I still don't understand what's the problem. Could you help? >> Nikita > > > -- > Paul H. Hargrove PHHargrove_at_lbl_dot_gov > Future Technologies Group Tel: +1-510-495-2352 > HPC Research Department Fax: +1-510-486-6900 > Lawrence Berkeley National Laboratory >