From: Paul H. Hargrove (PHHargrove_at_lbl_dot_gov)
Date: Sat Apr 10 2010 - 22:35:35 PDT
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