Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] Windows CMake build problems ...
From: Shiqing Fan (fan_at_[hidden])
Date: 2010-01-13 05:16:29


Hi Johnson,

I can see the reason for the errors, that's because you enabled option
"OMPI_ENABLE_DEBUG" option in CMake GUI, and for some reason, this
option will not work properly right now.

So please just disable "OMPI_ENABLE_DEBUG", and configure/compile again,
those errors will disappear.

Best Regards,
Shiqing

cjohnson_at_[hidden] wrote:
>
> The OpenMPI build problem I'm having occurs in both OpenMPI 1.4 and 1.3.4.
>
> I am on a Windows 7 (US) Enterprise (x86) OS on an HP system with
> Intel core 2 extreme x9000 (4GB RAM), using the 2005 Visual Studio for
> S/W Architects (release 8.0.50727.867). [That release has everything
> the platform SDK would have.]
>
> I'm using CMake 2.8 to generate code, I used it correctly, pointing at
> the root directory where the makelists are located for the source side
> and to an empty directory for the build side: did configure, click
> debug, configure again, generate and opened the OpenMPI.sln file
> created by CMake. Then I right-clicked on the "ALL_BUILD" project and
> selected "build".
>
> 1 project built, 13 did not. I have the build listing. [I'm afraid of
> what the mailing list server would do if I attached it to this email.;
>
> The first error in the listing points to source line:
> C:\prog\openmpi-1.3.4\opal/class/opal_object.h(182),
>
> After that critical error, the compile falls apart due to it. Here's
> the section of the listing with the first error in the center:
>
> 1>Generating Code...
> 1>Compiling...
> 1>signal.c
> 1>select.c
> 1>log.c
> 1>evutil.c
> 1>event.c
> 1>win32.c
> 1>c:\prog\openmpi-1.3.4\opal\event\win32-code\./config.h(185) :
> warning C4005: 'PACKAGE_BUGREPORT' : macro redefinition
> 1> c:\prog\mon\opal\include\opal_config.h(1307) : see previous
> definition of 'PACKAGE_BUGREPORT'
> 1>c:\prog\openmpi-1.3.4\opal\event\win32-code\./config.h(188) :
> warning C4005: 'PACKAGE_NAME' : macro redefinition
> 1> c:\prog\mon\opal\include\opal_config.h(1310) : see previous
> definition of 'PACKAGE_NAME'
> 1>c:\prog\openmpi-1.3.4\opal\event\win32-code\./config.h(191) :
> warning C4005: 'PACKAGE_STRING' : macro redefinition
> 1> c:\prog\mon\opal\include\opal_config.h(1313) : see previous
> definition of 'PACKAGE_STRING'
> 1>c:\prog\openmpi-1.3.4\opal\event\win32-code\./config.h(194) :
> warning C4005: 'PACKAGE_TARNAME' : macro redefinition
> 1> c:\prog\mon\opal\include\opal_config.h(1316) : see previous
> definition of 'PACKAGE_TARNAME'
> 1>c:\prog\openmpi-1.3.4\opal\event\win32-code\./config.h(197) :
> warning C4005: 'PACKAGE_VERSION' : macro redefinition
> 1> c:\prog\mon\opal\include\opal_config.h(1319) : see previous
> definition of 'PACKAGE_VERSION'
> 1>c:\prog\openmpi-1.3.4\opal\event\win32-code\./config.h(212) :
> warning C4005: '__func__' : macro redefinition
> 1> C:\prog\openmpi-1.3.4\opal\include\opal_config_bottom.h(449)
> : see previous definition of '__func__'
>
> ****************************** First error in build listing, below:
> 1>C:\prog\openmpi-1.3.4\opal/class/opal_object.h(182) : error C2016: C
> requires that a struct or union has at least one member
> 1>C:\prog\openmpi-1.3.4\opal/class/opal_object.h(182) : error C2061:
> syntax error : identifier '__uint64_t'
> 1>C:\prog\openmpi-1.3.4\opal/class/opal_object.h(190) : error C2059:
> syntax error : '}'
> 1>C:\prog\openmpi-1.3.4\opal/class/opal_object.h(248) : error C2037:
> left of 'obj_magic_id' specifies undefined struct/union 'opal_object_t'
> 1>C:\prog\openmpi-1.3.4\opal/class/opal_object.h(249) : error C2037:
> left of 'cls_init_file_name' specifies undefined struct/union
> 'opal_object_t'
> 1>C:\prog\openmpi-1.3.4\opal/class/opal_object.h(250) : error C2037:
> left of 'cls_init_lineno' specifies undefined struct/union 'opal_object_t'
> 1>C:\prog\openmpi-1.3.4\opal/class/opal_object.h(421) : error C2037:
> left of 'obj_class' specifies undefined struct/union 'opal_object_t'
> 1>C:\prog\openmpi-1.3.4\opal/class/opal_object.h(423) : error C2037:
> left of 'obj_class' specifies undefined struct/union 'opal_object_t'
> 1>C:\prog\openmpi-1.3.4\opal/class/opal_object.h(443) : error C2037:
> left of 'obj_class' specifies undefined struct/union 'opal_object_t'
> 1>C:\prog\openmpi-1.3.4\opal/class/opal_object.h(445) : error C2037:
> left of 'obj_class' specifies undefined struct/union 'opal_object_t'
> 1>C:\prog\openmpi-1.3.4\opal/class/opal_object.h(466) : error C2027:
> use of undefined type 'opal_object_t'
> 1> C:\prog\openmpi-1.3.4\opal/class/opal_object.h(178) : see
> declaration of 'opal_object_t'
> 1>C:\prog\openmpi-1.3.4\opal/class/opal_object.h(473) : error C2037:
> left of 'obj_class' specifies undefined struct/union 'opal_object_t'
> 1>C:\prog\openmpi-1.3.4\opal/class/opal_object.h(474) : error C2037:
> left of 'obj_reference_count' specifies undefined struct/union
> 'opal_object_t'
> 1>C:\prog\openmpi-1.3.4\opal/class/opal_object.h(497) : error C2037:
> left of 'obj_reference_count' specifies undefined struct/union
> 'opal_object_t'
> 1>C:\prog\openmpi-1.3.4\opal/class/opal_object.h(498) : error C2037:
> left of 'obj_reference_count' specifies undefined struct/union
> 'opal_object_t'
> 1>C:\prog\openmpi-1.3.4\opal/class/opal_object.h(498) : warning C4033:
> 'opal_obj_update' must return a value
> 1>C:\prog\openmpi-1.3.4\opal/util/output.h(99) : error C2079: 'super'
> uses undefined struct 'opal_object_t'
>
> Here's the source file section with the error line indicated:
>
> ---> Opal_object.h (lines 173-190)
>
> /**
> * For static initializations of OBJects.
> *
> * @param NAME Name of the class to initialize
> */
> #if OMPI_ENABLE_DEBUG
> #define OPAL_OBJ_STATIC_INIT(BASE_CLASS) { OPAL_OBJ_MAGIC_ID,
> OBJ_CLASS(BASE_CLASS), 1, __FILE__, __LINE__ }
> #else
> #define OPAL_OBJ_STATIC_INIT(BASE_CLASS) { OBJ_CLASS(BASE_CLASS), 1 }
> #endif
>
> /**
> * Base object.
> *
> * This is special and does not follow the pattern for other classes.
> */
> struct opal_object_t {
> #if OMPI_ENABLE_DEBUG
> /** Magic ID -- want this to be the very first item in the
> struct's memory */
>
> ************************* Error (the first one) C2016 points to line
> 182 below:
> 182-> uint64_t obj_magic_id;
> #endif
> opal_class_t *obj_class; /**< class descriptor */
> volatile int32_t obj_reference_count; /**< reference count */
> #if OMPI_ENABLE_DEBUG
> const char* cls_init_file_name; /**< In debug mode store the
> file where the object get contructed */
> int cls_init_lineno; /**< In debug mode store the line
> number where the object get contructed */
> #endif /* OMPI_ENABLE_DEBUG */
> };
>
> Usually, compile errors in a system are like a missing path or a
> header file not found, this one has me stumped.
>
> C.S. Johnson ...
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users

-- 
--------------------------------------------------------------
Shiqing Fan                          http://www.hlrs.de/people/fan
High Performance Computing           Tel.: +49 711 685 87234
  Center Stuttgart (HLRS)            Fax.: +49 711 685 65832
Address:Allmandring 30               email: fan_at_[hidden]    
70569 Stuttgart