From 503f2817b3281dcfbb7e867a6e206026b01d1bd9 Mon Sep 17 00:00:00 2001 From: Shiqing Fan Date: Mon, 13 Jul 2009 17:39:41 +0000 Subject: [PATCH] Corresponding changes to r21641 and r21642 for Windows. - Add a CMake macro for checking OPAL_MAX_XXX values, re-written from OPAL_WITH_OPTION_MIN_MAX_VALUE m4 function. - Definition prefix changes and additional datatype alignments checking. - Finish the datatype splitting on Windows too. :-) This commit was SVN r21649. The following SVN revision numbers were found above: r21641 --> open-mpi/ompi@6c5532072ab98fbcb763d6c42900972980f390ae r21642 --> open-mpi/ompi@c971c09eb67569ea861260c88c8465b2bf1c6ce2 --- .../win32/CMakeModules/ompi_configure.cmake | 130 +++++++++++++++--- .../win32/CMakeModules/opal_functions.cmake | 52 +++++++ .../win32/ConfigFiles/opal_config.h.cmake | 60 +++++++- ompi/CMakeLists.txt | 13 -- opal/CMakeLists.txt | 13 ++ opal/win32/win_compat.h | 1 + 6 files changed, 231 insertions(+), 38 deletions(-) create mode 100644 contrib/platform/win32/CMakeModules/opal_functions.cmake diff --git a/contrib/platform/win32/CMakeModules/ompi_configure.cmake b/contrib/platform/win32/CMakeModules/ompi_configure.cmake index 20894086fc..52a559f638 100644 --- a/contrib/platform/win32/CMakeModules/ompi_configure.cmake +++ b/contrib/platform/win32/CMakeModules/ompi_configure.cmake @@ -15,6 +15,7 @@ INCLUDE (get_c_alignment) INCLUDE (check_c_inline) INCLUDE (Check_c_type_exists) +INCLUDE (opal_functions) INCLUDE (CheckIncludeFileCXX) INCLUDE (CheckIncludeFile) @@ -154,6 +155,26 @@ ENDIF(WIN32 AND MSVC) # Options # ################################################################### +# No lower and upper bound required or enforced +OPAL_WITH_OPTION_MIN_MAX_VALUE(processor_name 256 16 1024) + +# Min length according to information passed in ompi/errhandler/errcode.c +OPAL_WITH_OPTION_MIN_MAX_VALUE(error_string 256 64 1024) + +# Min length according to MPI-2.1, p. 236 (information passed in ompi/communicator/comm.c: min only 48) +OPAL_WITH_OPTION_MIN_MAX_VALUE(object_name 64 64 256) + +# Min and Max length according to MPI-2.1, p. 287 is 32; longest key in ROMIO however 33 +OPAL_WITH_OPTION_MIN_MAX_VALUE(info_key 36 34 255) + +# No lower and upper bound required or enforced! +OPAL_WITH_OPTION_MIN_MAX_VALUE(info_val 256 32 1024) + +# Min length according to _POSIX_HOST_NAME_MAX=255 (4*HOST_NAME_MAX) +OPAL_WITH_OPTION_MIN_MAX_VALUE(port_name 1024 255 2048) + +# Min length accroding to MPI-2.1, p. 418 +OPAL_WITH_OPTION_MIN_MAX_VALUE(datarep_string 128 64 256) OPTION(MCA_mtl_DIRECT_CALL "Whether mtl should use direct calls instead of components." OFF) MARK_AS_ADVANCED(MCA_mtl_DIRECT_CALL) @@ -887,6 +908,10 @@ SET(SIZEOF_UNSIGNED_SHORT ${UNSIGNED_SHORT} CACHE INTERNAL "sizeof 'unsigned sho CHECK_TYPE_SIZE ("unsigned long long" UNSIGNED_LONG_LONG) SET(SIZEOF_UNSIGNED_LONG_LONG ${UNSIGNED_LONG_LONG} CACHE INTERNAL "sizeof 'unsigned long long'") +#/* The size of `unsigned long double', as computed by sizeof. */ +CHECK_TYPE_SIZE("unsigned long double" UNSIGNED_LONG_DOUBLE) +SET(SIZEOF_UNSIGNED_LONG_DOUBLE ${UNSIGNED_LONG_DOUBLE} CACHE INTERNAL "sizeof 'unsigned long double'") + #/* The size of `unsigned char', as computed by sizeof. */ CHECK_TYPE_SIZE ("unsigned char" UNSIGNED_CHAR) SET(SIZEOF_UNSIGNED_CHAR ${UNSIGNED_CHAR} CACHE INTERNAL "sizeof 'unsigned char'") @@ -895,6 +920,18 @@ SET(SIZEOF_UNSIGNED_CHAR ${UNSIGNED_CHAR} CACHE INTERNAL "sizeof 'unsigned char' CHECK_TYPE_SIZE(short SHORT) SET(SIZEOF_SHORT ${SHORT} CACHE INTERNAL "sizeof 'short'") +#/* The size of `float _Complex', as computed by sizeof. */ +CHECK_TYPE_SIZE("float _Complex" FLOAT_COMPLEX) +SET(SIZEOF_FLOAT_COMPLEX ${SHORT} CACHE INTERNAL "sizeof 'float _Complex'") + +#/* The size of `double _Complex', as computed by sizeof. */ +CHECK_TYPE_SIZE("double _Complex" DOUBLE_COMPLEX) +SET(SIZEOF_DOUBLE_COMPLEX ${SHORT} CACHE INTERNAL "sizeof 'double _Complex'") + +#/* The size of `long double _Complex', as computed by sizeof. */ +CHECK_TYPE_SIZE("long double _Complex" LONG_DOUBLE_COMPLEX) +SET(SIZEOF_LONG_DOUBLE_COMPLEX ${SHORT} CACHE INTERNAL "sizeof 'long double _Complex'") + #/* The size of `size_t', as computed by sizeof. */ CHECK_TYPE_SIZE(size_t SIZE_T) IF (NOT SIZEOF_SIZE_T) @@ -931,14 +968,28 @@ SET(SIZEOF_PTRDIFF_T ${PTRDIFF_T} CACHE INTERNAL "sizeof 'ptrdiff_t'") #/* Define to 1 if the system has the type `mode_t'. */ CHECK_TYPE_SIZE (mode_t MODE_T) +#/* Define to 1 if the system has the type `int8_t'. */ +CHECK_TYPE_SIZE (int8_t INT8_T) +IF (NOT SIZEOF_INT8_T) + MESSAGE(STATUS "Define it as 'char'.") + C_GET_ALIGNMENT(char c INT8) + #SET (int8_t "char" CACHE INTERNAL "define 'int8_t'") + SET (SIZEOF_INT8_T ${SIZEOF_UNSIGNED_CHAR} CACHE INTERNAL "sizeof 'int8_t'") +ELSEIF (HAVE_INT8_T) + C_GET_ALIGNMENT(int8_t c INT8) + SET (SIZEOF_INT8_T ${INT8_T} CACHE INTERNAL "sizeof 'int8_t'") +ENDIF (NOT SIZEOF_INT8_T) + #/* Define to 1 if the system has the type `int16_t'. */ CHECK_TYPE_SIZE (int16_t INT16_T) IF (NOT SIZEOF_INT16_T) # int16_t is not defind, define it as short. MESSAGE(STATUS "Define it as 'short'.") + C_GET_ALIGNMENT(short c INT16) #SET (int16_t "short" CACHE INTERNAL "define 'int16_t'") SET (SIZEOF_INT16_T ${SIZEOF_SHORT} CACHE INTERNAL "sizeof 'int16_t'") ELSEIF (HAVE_INT16_T) + C_GET_ALIGNMENT(int16_t c INT16) SET (SIZEOF_INT16_T ${INT16_T} CACHE INTERNAL "sizeof 'int16_t'") ENDIF (NOT SIZEOF_INT16_T) @@ -946,9 +997,11 @@ ENDIF (NOT SIZEOF_INT16_T) CHECK_TYPE_SIZE (int32_t INT32_T) IF (NOT SIZEOF_INT32_T) MESSAGE(STATUS "Define it as 'int'.") + C_GET_ALIGNMENT(int c INT32) #SET (int32_t "int" CACHE INTERNAL "define 'int32_t'") SET (SIZEOF_INT32_T ${SIZEOF_INT} CACHE INTERNAL "sizeof 'int32_t'") ELSEIF (HAVE_INT32_T) + C_GET_ALIGNMENT(int32_t c INT32) SET (SIZEOF_INT32_T ${INT32_T} CACHE INTERNAL "sizeof 'int32_t'") ENDIF (NOT SIZEOF_INT32_T) @@ -956,21 +1009,35 @@ ENDIF (NOT SIZEOF_INT32_T) CHECK_TYPE_SIZE (int64_t INT64_T) IF (NOT SIZEOF_INT64_T) MESSAGE(STATUS "Define it as 'long long'.") + C_GET_ALIGNMENT("long long" c INT64) #SET (int64_t "long long" CACHE INTERNAL "define 'int64_t'") SET (SIZEOF_INT64_T ${SIZEOF_LONG_LONG} CACHE INTERNAL "sizeof 'int64_t'") ELSEIF (HAVE_INT64_T) + C_GET_ALIGNMENT(int64_t c INT64) SET (SIZEOF_INT64_T ${INT64_T} CACHE INTERNAL "sizeof 'int64_t'") ENDIF (NOT SIZEOF_INT64_T) -#/* Define to 1 if the system has the type `int8_t'. */ -CHECK_TYPE_SIZE (int8_t INT8_T) -IF (NOT SIZEOF_INT8_T) - MESSAGE(STATUS "Define it as 'char'.") - #SET (int8_t "char" CACHE INTERNAL "define 'int8_t'") - SET (SIZEOF_INT8_T ${SIZEOF_UNSIGNED_CHAR} CACHE INTERNAL "sizeof 'int8_t'") +#/* Define to 1 if the system has the type `int128_t'. */ +CHECK_TYPE_SIZE (int128_t INT128_T) +IF (NOT SIZEOF_INT128_T) + MESSAGE(STATUS "Define it as 'long double'.") + C_GET_ALIGNMENT("long double" c INT128) + #SET (u_int8_t "unsigned char" CACHE INTERNAL "define 'uint8_t'") + SET (SIZEOF_INT128_T ${SIZEOF_LONG_DOUBLE} CACHE INTERNAL "sizeof 'int128_t'") ELSEIF (HAVE_INT8_T) - SET (SIZEOF_INT8_T ${INT8_T} CACHE INTERNAL "sizeof 'int8_t'") -ENDIF (NOT SIZEOF_INT8_T) + C_GET_ALIGNMENT(int128_t c INT128) + SET (SIZEOF_INT128_T ${INT128_T} CACHE INTERNAL "sizeof 'int128_t'") +ENDIF (NOT SIZEOF_INT128_T) + +#/* Define to 1 if the system has the type `uint8_t'. */ +CHECK_TYPE_SIZE (uint8_t UINT8_T) +IF (NOT SIZEOF_UINT8_T) + MESSAGE(STATUS "Define it as 'unsigned char'.") + #SET (u_int8_t "unsigned char" CACHE INTERNAL "define 'uint8_t'") + SET (SIZEOF_UINT8_T ${SIZEOF_UNSIGNED_CHAR} CACHE INTERNAL "sizeof 'uint8_t'") +ELSEIF (HAVE_UINT8_T) + SET (SIZEOF_UINT8_T ${UINT8_T} CACHE INTERNAL "sizeof 'uint8_t'") +ENDIF (NOT SIZEOF_UINT8_T) #/* Define to 1 if the system has the type `uint16_t'. */ CHECK_TYPE_SIZE (uint16_t UINT16_T) @@ -983,34 +1050,34 @@ ELSEIF (HAVE_UINT16_T) ENDIF (NOT SIZEOF_UINT16_T) #/* Define to 1 if the system has the type `uint32_t'. */ -CHECK_TYPE_SIZE (uint32_t UNIT32_T) +CHECK_TYPE_SIZE (uint32_t UINT32_T) IF (NOT SIZEOF_UINT32_T) MESSAGE(STATUS "Define it as 'unsigned int'.") #SET (u_int32_t "unsigned int" CACHE INTERNAL "define 'uint32_t'") SET (SIZEOF_UINT32_T ${SIZEOF_UNSIGNED_INT} CACHE INTERNAL "sizeof 'uint32_t'") ELSEIF (HAVE_UINT32_T) - SET (SIZEOF_UINT32_T ${UNIT32_T} CACHE INTERNAL "sizeof 'uint32_t'") + SET (SIZEOF_UINT32_T ${UINT32_T} CACHE INTERNAL "sizeof 'uint32_t'") ENDIF (NOT SIZEOF_UINT32_T) #/* Define to 1 if the system has the type `uint64_t'. */ -CHECK_TYPE_SIZE (unit64_t UNIT64_T) +CHECK_TYPE_SIZE (uint64_t UINT64_T) IF (NOT SIZEOF_UINT64_T) MESSAGE(STATUS "Define it as 'unsigned long long'.") #SET (u_int64_t "unsigned long long" CACHE INTERNAL "define 'uint64_t'") SET (SIZEOF_UINT64_T ${SIZEOF_UNSIGNED_LONG_LONG} CACHE INTERNAL "sizeof 'uint64_t'") ELSEIF (HAVE_UINT64_T) - SET (SIZEOF_UINT64_T ${UNIT64_T} CACHE INTERNAL "sizeof 'uint64_t'") + SET (SIZEOF_UINT64_T ${UINT64_T} CACHE INTERNAL "sizeof 'uint64_t'") ENDIF (NOT SIZEOF_UINT64_T) -#/* Define to 1 if the system has the type `uint8_t'. */ -CHECK_TYPE_SIZE (unit8_t UNIT8_T) -IF (NOT SIZEOF_UINT8_T) - MESSAGE(STATUS "Define it as 'unsigned char'.") +#/* Define to 1 if the system has the type `uint128_t'. */ +CHECK_TYPE_SIZE (uint128_t UINT128_T) +IF (NOT SIZEOF_UINT128_T) + MESSAGE(STATUS "Define it as 'unsigned long double'.") #SET (u_int8_t "unsigned char" CACHE INTERNAL "define 'uint8_t'") - SET (SIZEOF_UINT8_T ${SIZEOF_UNSIGNED_CHAR} CACHE INTERNAL "sizeof 'uint8_t'") + SET (SIZEOF_UINT128_T ${SIZEOF_UNSIGNED_LONG_DOUBLE} CACHE INTERNAL "sizeof 'uint128_t'") ELSEIF (HAVE_UINT8_T) - SET (SIZEOF_UINT8_T ${UNIT8_T} CACHE INTERNAL "sizeof 'uint8_t'") -ENDIF (NOT SIZEOF_UINT8_T) + SET (SIZEOF_UINT128_T ${UINT128_T} CACHE INTERNAL "sizeof 'uint128_t'") +ENDIF (NOT SIZEOF_UINT128_T) #/* Define to 1 if the system has the type `struct sockaddr_in'. */ CHECK_TYPE_SIZE ("struct sockaddr_in" STRUCT_SOCKADDR_IN) @@ -1051,12 +1118,27 @@ C_GET_ALIGNMENT ("long long" c LONG_LONG) #/* Alignment of type short */ C_GET_ALIGNMENT (short c SHORT) +IF(HAVE_FLOAT_COMPLEX) + C_GET_ALIGNMENT("float _Complex" c FLOAT_COMPLEX) +ENDIF(HAVE_FLOAT_COMPLEX) + +IF(HAVE_DOUBLE_COMPLEX) + C_GET_ALIGNMENT("double _Complex" c DOUBLE_COMPLEX) +ENDIF(HAVE_DOUBLE_COMPLEX) + +IF(HAVE_LONG_DOUBLE_COMPLEX) + C_GET_ALIGNMENT("long double _Complex" c LONG_DOUBLE_COMPLEX) +ENDIF(HAVE_LONG_DOUBLE_COMPLEX) + #/* Alignment of type void * */ C_GET_ALIGNMENT ("void *" c VOID_P) #/* Alignment of type wchar_t */ C_GET_ALIGNMENT (wchar_t c WCHAR_T) +#/* Alignment of type _Bool */ +C_GET_ALIGNMENT(_Bool, c BOOL) + #/* Whether the C compiler supports "bool" without any other help (such as # ) */ INCLUDE(c_check_bool) @@ -1864,3 +1946,13 @@ SET (PACKAGE_VERSION ${VERSION_STRING}) # SET(ompi_fortran_real_t 1) # SET(ompi_fortran_real_t_STRING "ompi_fortran_bogus_type_t") #ENDIF(WIN32) + +# +# User level (mpi.h.in) visible maximum lengths of strings. +# These may be required in lower-level libraries to set up matching +# data-structures (e.g. OPAL_MAX_OBJECT_NAME). +# +# Default values (as of OMPI-1.3), and some sane minimum and maximum values +# + + diff --git a/contrib/platform/win32/CMakeModules/opal_functions.cmake b/contrib/platform/win32/CMakeModules/opal_functions.cmake new file mode 100644 index 0000000000..3ce32fbd65 --- /dev/null +++ b/contrib/platform/win32/CMakeModules/opal_functions.cmake @@ -0,0 +1,52 @@ +# +# Copyright (c) 2009 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# +# Functions that are re-written from config/opal_functions.m4, and to be continued... +# + + +# OPAL_WITH_OPTION_MIN_MAX_VALUE(NAME,DEFAULT_VALUE,LOWER_BOUND,UPPER_BOUND) +# Defines a variable OPAL_MAX_xxx, with "xxx" being specified as the first parameter. +# If not set at configure-time, the default-value is assumed. +# If set, value is checked against lower and upper bound +# +MACRO(OPAL_WITH_OPTION_MIN_MAX_VALUE NAME DEFAULT_VALUE LOWER_BOUND UPPER_BOUND) + + STRING(REPLACE "_" " " NAME_HELPER ${NAME}) + STRING(TOUPPER "OPAL_MAX_${NAME}" OPTION_VALUE_VAR) + + IF(NOT ${OPTION_VALUE_VAR}) + MESSAGE(STATUS "checking maximum length of ${NAME_HELPER}...") + MESSAGE(STATUS "Use default value ${DEFAULT_VALUE}.") + + SET(${NAME}_OLD_VALUE ${DEFAULT_VALUE} CACHE INTERNAL "the value from the last configure.") + SET(${OPTION_VALUE_VAR} ${DEFAULT_VALUE} CACHE STRING + "maximum length of ${NAME} (${LOWER_BOUND}-${UPPER_BOUND}). (Default: ${DEFAULT_VALUE}.)." FORCE) + ENDIF(NOT ${OPTION_VALUE_VAR}) + + # check if the value is changed. + IF(NOT ${${OPTION_VALUE_VAR}} EQUAL ${NAME}_OLD_VALUE) + MESSAGE(STATUS "checking maximum length of ${NAME_HELPER}...") + + # check if the value is in the range. + IF(NOT ${${OPTION_VALUE_VAR}} EQUAL 0 AND NOT ${${OPTION_VALUE_VAR}} EQUAL no AND NOT ${${OPTION_VALUE_VAR}} EQUAL NO) + + IF(${${OPTION_VALUE_VAR}} LESS ${LOWER_BOUND} OR ${${OPTION_VALUE_VAR}} GREATER ${UPPER_BOUND}) + MESSAGE(FATAL_ERROR "${OPTION_VALUE_VAR} is out of range(${LOWER_BOUND}-${UPPER_BOUND}). Cannot continue.") + ENDIF(${${OPTION_VALUE_VAR}} LESS ${LOWER_BOUND} OR ${${OPTION_VALUE_VAR}} GREATER ${UPPER_BOUND}) + + ELSE(NOT ${${OPTION_VALUE_VAR}} EQUAL 0 AND NOT ${${OPTION_VALUE_VAR}} EQUAL no AND NOT ${${OPTION_VALUE_VAR}} EQUAL NO) + MESSAGE(FATAL_ERROR "Bad value for ${OPTION_VALUE_VAR}. Cannot continue.") + ENDIF(NOT ${${OPTION_VALUE_VAR}} EQUAL 0 AND NOT ${${OPTION_VALUE_VAR}} EQUAL no AND NOT ${${OPTION_VALUE_VAR}} EQUAL NO) + + ENDIF(NOT ${${OPTION_VALUE_VAR}} EQUAL ${NAME}_OLD_VALUE) + +ENDMACRO(OPAL_WITH_OPTION_MIN_MAX_VALUE NAME DEFAULT_VALUE LOWER_BOUND UPPER_BOUND) diff --git a/contrib/platform/win32/ConfigFiles/opal_config.h.cmake b/contrib/platform/win32/ConfigFiles/opal_config.h.cmake index 9564e29810..7f356764a7 100644 --- a/contrib/platform/win32/ConfigFiles/opal_config.h.cmake +++ b/contrib/platform/win32/ConfigFiles/opal_config.h.cmake @@ -6,7 +6,7 @@ * All rights reserved. * Copyright (c) 2004-2005 The Trustees of the University of Tennessee. * All rights reserved. - * Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, + * Copyright (c) 2004-2009 High Performance Computing Center Stuttgart, * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. @@ -63,6 +63,27 @@ #define OPAL_BUILD_PLATFORM_COMPILER_VERSION_STR ${COMPILER_VERSION} +/* Maximum length of datarep strings (default is 128) */ +#define OPAL_MAX_DATAREP_STRING ${OPAL_MAX_DATAREP_STRING} + +/* Maximum length of error strings (default is 256) */ +#define OPAL_MAX_ERROR_STRING ${OPAL_MAX_ERROR_STRING} + +/* Maximum length of info keys (default is 36) */ +#define OPAL_MAX_INFO_KEY ${OPAL_MAX_INFO_KEY} + +/* Maximum length of info vals (default is 256) */ +#define OPAL_MAX_INFO_VAL ${OPAL_MAX_INFO_VAL} + +/* Maximum length of object names (default is 64) */ +#define OPAL_MAX_OBJECT_NAME ${OPAL_MAX_OBJECT_NAME} + +/* Maximum length of port names (default is 1024) */ +#define OPAL_MAX_PORT_NAME ${OPAL_MAX_PORT_NAME} + +/* Maximum length of processor names (default is 256) */ +#define OPAL_MAX_PROCESSOR_NAME ${OPAL_MAX_PROCESSOR_NAME} + /* Define to 1 if you have the header file. */ #cmakedefine HAVE_WINSOCK2_H 1 @@ -641,13 +662,13 @@ #define OPAL_ALIGNMENT_CHAR ${CHAR_ALIGNMENT} /* Alignment of type bool */ -#define OMPI_ALIGNMENT_CXX_BOOL ${BOOL_ALIGNMENT} +#define OPAL_ALIGNMENT_CXX_BOOL ${BOOL_ALIGNMENT} /* Alignment of type double */ -#define OMPI_ALIGNMENT_DOUBLE ${DOUBLE_ALIGNMENT} +#define OPAL_ALIGNMENT_DOUBLE ${DOUBLE_ALIGNMENT} /* Alignment of type float */ -#define OMPI_ALIGNMENT_FLOAT ${FLOAT_ALIGNMENT} +#define OPAL_ALIGNMENT_FLOAT ${FLOAT_ALIGNMENT} /* Alignment of Fortran 77 COMPLEX */ #define OMPI_ALIGNMENT_FORTRAN_COMPLEX ${OMPI_ALIGNMENT_FORTRAN_COMPLEX} @@ -727,11 +748,38 @@ /* Alignment of type short */ #define OPAL_ALIGNMENT_SHORT ${SHORT_ALIGNMENT} +/* Alignment of type float _Complex */ +#cmakedefine OPAL_ALIGNMENT_FLOAT_COMPLEX ${FLOAT_COMPLEX_ALIGNMENT} + +/* Alignment of type double _Complex */ +#cmakedefine OPAL_ALIGNMENT_DOUBLE_COMPLEX ${DOUBLE_COMPLEX_ALIGNMENT} + +/* Alignment of type long double _Complex */ +#cmakedefine OPAL_ALIGNMENT_LONG_DOUBLE_COMPLEX ${LONG_DOUBLE_COMPLEX_ALIGNMENT} + /* Alignment of type void * */ -#define OMPI_ALIGNMENT_VOID_P ${VOID_P_ALIGNMENT} +#define OPAL_ALIGNMENT_VOID_P ${VOID_P_ALIGNMENT} /* Alignment of type wchar_t */ -#define OMPI_ALIGNMENT_WCHAR ${WCHAR_T_ALIGNMENT} +#define OPAL_ALIGNMENT_WCHAR ${WCHAR_T_ALIGNMENT} + +/* Alignment of type _Bool */ +#define OPAL_ALIGNMENT_BOOL ${BOOL_ALIGNMENT} + +/* Alignment of type wchar_t */ +#define OPAL_ALIGNMENT_INT8 ${INT8_ALIGNMENT} + +/* Alignment of type wchar_t */ +#define OPAL_ALIGNMENT_INT16 ${INT16_ALIGNMENT} + +/* Alignment of type wchar_t */ +#define OPAL_ALIGNMENT_INT32 ${INT32_ALIGNMENT} + +/* Alignment of type wchar_t */ +#define OPAL_ALIGNMENT_INT64 ${INT64_ALIGNMENT} + +/* Alignment of type wchar_t */ +#define OPAL_ALIGNMENT_INT128 ${INT128_ALIGNMENT} /* OMPI architecture string */ #define OPAL_ARCH "${CMAKE_SYSTEM_PROCESSOR} ${CMAKE_SYSTEM}" diff --git a/ompi/CMakeLists.txt b/ompi/CMakeLists.txt index 18458751fe..a435c042c4 100644 --- a/ompi/CMakeLists.txt +++ b/ompi/CMakeLists.txt @@ -17,19 +17,6 @@ PROJECT (OMPI) -# These two files need to be compiled twice, one time with preprocessor CHECKSUM. -# Make one copy of them with another file name and add them into the project. -CONFIGURE_FILE(datatype/datatype_pack.c ${PROJECT_BINARY_DIR}/datatype/datatype_pack_checksum.c [COPYONLY]) -CONFIGURE_FILE(datatype/datatype_unpack.c ${PROJECT_BINARY_DIR}/datatype/datatype_unpack_checksum.c [COPYONLY]) - -SET(DATATYPE_CHECKSUM_FILES ${PROJECT_BINARY_DIR}/datatype/datatype_pack_checksum.c - ${PROJECT_BINARY_DIR}/datatype/datatype_unpack_checksum.c ) - -SET_SOURCE_FILES_PROPERTIES(${DATATYPE_CHECKSUM_FILES} - PROPERTIES COMPILE_DEFINITIONS CHECKSUM) -SET(OMPI_SOURCE_FILES ${OMPI_SOURCE_FILES} ${DATATYPE_CHECKSUM_FILES}) -SOURCE_GROUP(datatype FILES ${DATATYPE_CHECKSUM_FILES}) - # Recuresive search sub directories excluding mca, mpi and tools. # Add sources in different source groups. EXECUTE_PROCESS (COMMAND cmd /C dir /AD /B diff --git a/opal/CMakeLists.txt b/opal/CMakeLists.txt index 6eb4484ed0..f3592bffc6 100644 --- a/opal/CMakeLists.txt +++ b/opal/CMakeLists.txt @@ -15,6 +15,19 @@ PROJECT (OPAL) # Add include sub directory to gernerate opal_config.h ADD_SUBDIRECTORY (include) +# These two files need to be compiled twice, one time with preprocessor CHECKSUM. +# Make one copy of them with another file name and add them into the project. +CONFIGURE_FILE(datatype/opal_datatype_pack.c ${PROJECT_BINARY_DIR}/datatype/opal_datatype_pack_checksum.c [COPYONLY]) +CONFIGURE_FILE(datatype/opal_datatype_unpack.c ${PROJECT_BINARY_DIR}/datatype/opal_datatype_unpack_checksum.c [COPYONLY]) + +SET(DATATYPE_CHECKSUM_FILES ${PROJECT_BINARY_DIR}/datatype/opal_datatype_pack_checksum.c + ${PROJECT_BINARY_DIR}/datatype/opal_datatype_unpack_checksum.c ) + +SET_SOURCE_FILES_PROPERTIES(${DATATYPE_CHECKSUM_FILES} + PROPERTIES COMPILE_DEFINITIONS CHECKSUM) +SET(OPAL_SOURCE_FILES ${OPAL_SOURCE_FILES} ${DATATYPE_CHECKSUM_FILES}) +SOURCE_GROUP(datatype FILES ${DATATYPE_CHECKSUM_FILES}) + # Add source files diff --git a/opal/win32/win_compat.h b/opal/win32/win_compat.h index 86c9856965..d46bee6b85 100644 --- a/opal/win32/win_compat.h +++ b/opal/win32/win_compat.h @@ -210,6 +210,7 @@ typedef unsigned int uint; #define sigset_t int #define in_addr_t uint32_t +#define _Bool BOOL /* * No syslog.h on Windows, but these have to be defined somehow.