Changeset: 20831b61f40c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=20831b61f40c
Modified Files:
CMakeLists.txt
clients/odbc/driver/SQLTables.c
monetdb5/extras/rapi/CMakeLists.txt
Branch: cmake-fun
Log Message:
Intel compiler fixes.
diffs (118 lines):
diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -102,7 +102,7 @@ set(WITH_LIBXML2 "AUTO" CACHE STRING "In
set(WITH_LZ4 "AUTO" CACHE STRING "Include lz4 library support (default=AUTO)")
# Check with HAVE_LIBLZ4
set(WITH_PROJ "AUTO" CACHE STRING "Include proj support (default=AUTO)") #
Check with HAVE_PROJ
set(WITH_READLINE "AUTO" CACHE STRING "Include readline support
(default=AUTO)") # Check with HAVE_LIBREADLINE
-set(WITH_REGEX "PCRE" CACHE STRING "Use either PCRE or POSIX regular
expressions (default=PCRE if available)") # Check with HAVE_LIBPCRE and
HAVE_POSIX_REGEX
+set(WITH_REGEX "AUTO" CACHE STRING "Use either PCRE or POSIX regular
expressions (default=PCRE if available)") # Check with HAVE_LIBPCRE and
HAVE_POSIX_REGEX
set(WITH_SNAPPY "AUTO" CACHE STRING "Include snappy support (default=AUTO)") #
Check with HAVE_LIBSNAPPY
set(WITH_UUID "AUTO" CACHE STRING "Include UUID support (default=AUTO)") #
Check with HAVE_UUID
set(WITH_VALGRIND "NO" CACHE STRING "Include valgrind support (default=NO)") #
Check with HAVE_VALGRIND
@@ -149,11 +149,28 @@ else()
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}")
endif()
+function(MT_checkCompilerFlag Flag) # WARNING this doesn't work with
LINK_OPTIONS yet!
+ if(NOT "${CMAKE_C_FLAGS}" MATCHES "${Flag}")
+ string(REGEX REPLACE "[-/=,]" "" FLAG_TEST "${Flag}") # cmake
will get confused if we don't remove - / = ,
+ cmake_push_check_state()
+ set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${Flag}")
+ check_c_source_compiles("int main(int argc,char**
argv){(void)argc;(void)argv;return 0;}" COMPILER_${FLAG_TEST})
+ cmake_pop_check_state()
+ if(COMPILER_${FLAG_TEST})
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${Flag}"
PARENT_SCOPE)
+ endif()
+ endif()
+endfunction()
+
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
add_definitions(-D_GNU_SOURCE -D_XOPEN_SOURCE)
set(CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}
-D_GNU_SOURCE -D_XOPEN_SOURCE") # required for tests
endif()
if(${CMAKE_C_COMPILER_ID} STREQUAL "Intel")
+ if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+ MT_checkCompilerFlag("-no-gcc")
+ add_definitions(-D_Float32=float -D_Float64="long double"
-D_Float32x=double -D_Float64x="long double")
+ endif()
if(EXISTS "${ROOT}/usr/include/math.h") # see
https://software.intel.com/en-us/forums/intel-c-compiler/topic/760979
file(READ "${ROOT}/usr/include/math.h" TMPTXT)
string(FIND "${TMPTXT}" "_LIB_VERSION_TYPE" FOUND_VERSION)
@@ -161,6 +178,7 @@ if(${CMAKE_C_COMPILER_ID} STREQUAL "Inte
set(INTEL_MATH_H_HACK ON CACHE INTERNAL "must use intel
math.h hack")
endif()
endif()
+ set(__attribute__(a) ON)
set(NAN_CANNOT_BE_USED_AS_INITIALIZER ON CACHE INTERNAL "NaN cannot be
used as an initializer") # This hack is only required by the Intel compiler
elseif(MSVC)
set(_Noreturn "__declspec(noreturn)")
@@ -649,19 +667,6 @@ else() #GCC, clang and Apple clang
endif()
endif()
-function(MT_checkCompilerFlag Flag) # WARNING this doesn't work with
LINK_OPTIONS yet!
- if(NOT "${CMAKE_C_FLAGS}" MATCHES "${Flag}")
- string(REGEX REPLACE "[-/=,]" "" FLAG_TEST "${Flag}") # cmake
will get confused if we don't remove - / = ,
- cmake_push_check_state()
- set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${Flag}")
- check_c_source_compiles("int main(int argc,char**
argv){(void)argc;(void)argv;return 0;}" COMPILER_${FLAG_TEST})
- cmake_pop_check_state()
- if(COMPILER_${FLAG_TEST})
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${Flag}"
PARENT_SCOPE)
- endif()
- endif()
-endfunction()
-
if(${ENABLE_STRICT} STREQUAL "YES")
if(${CMAKE_C_COMPILER_ID} MATCHES "^GNU|Clang|AppleClang$")
MT_checkCompilerFlag("-W")
@@ -702,15 +707,16 @@ if(${ENABLE_STRICT} STREQUAL "YES")
MT_checkCompilerFlag("-Wno-char-subscripts")
MT_checkCompilerFlag("-Wunreachable-code")
elseif(${CMAKE_C_COMPILER_ID} STREQUAL "Intel")
- if(NOT WIN32)
+ if(WIN32)
+ set(INTEL_OPTION_EXTRA "Q")
+ else()
MT_checkCompilerFlag("${COMPILER_OPTION}shared-intel")
endif()
MT_checkCompilerFlag("${COMPILER_OPTION}Wall")
MT_checkCompilerFlag("${COMPILER_OPTION}Wcheck")
MT_checkCompilerFlag("${COMPILER_OPTION}Werror-all")
- # WINDOWS set(INTEL_CHECK_EXTRA "Q")
-
#MT_checkCompilerFlag("${COMPILER_OPTION}${INTEL_CHECK_EXTRA}we140,147,181,266,271,593,810")
-
#MT_checkCompilerFlag("${COMPILER_OPTION}${INTEL_CHECK_EXTRA}wd193,279,981,1357,1418,1419,2259")
+
MT_checkCompilerFlag("${COMPILER_OPTION}${INTEL_OPTION_EXTRA}we140,147,181,266,271,593,810")
+
MT_checkCompilerFlag("${COMPILER_OPTION}${INTEL_OPTION_EXTRA}wd193,279,981,1357,1418,1419,2259")
elseif(MSVC)
MT_checkCompilerFlag("/WX")
endif()
diff --git a/clients/odbc/driver/SQLTables.c b/clients/odbc/driver/SQLTables.c
--- a/clients/odbc/driver/SQLTables.c
+++ b/clients/odbc/driver/SQLTables.c
@@ -211,7 +211,7 @@ MNDBTables(ODBCStmt *stmt,
if (NameLength4 > 0) {
/* filtering requested on table type */
- char buf[32]; /* the longest string is "GLOBAL
TEMPORARY TABLE" */
+ char buf[32] = {'\0'}; /* the longest string is
"GLOBAL TEMPORARY TABLE" */
int i;
size_t j;
diff --git a/monetdb5/extras/rapi/CMakeLists.txt
b/monetdb5/extras/rapi/CMakeLists.txt
--- a/monetdb5/extras/rapi/CMakeLists.txt
+++ b/monetdb5/extras/rapi/CMakeLists.txt
@@ -55,7 +55,11 @@ if(HAVE_LIBR)
target_link_libraries(rapi PRIVATE ${RAPI_LINK_LIBRARIES})
set_target_properties(rapi PROPERTIES OUTPUT_NAME _rapi)
target_compile_definitions(rapi PRIVATE LIBRAPI)
- if(NOT MSVC)
+ cmake_push_check_state()
+ set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS};-Wno-redundant-decls")
+ check_c_source_compiles("int main(int argc,char**
argv){(void)argc;(void)argv;return 0;}" COMPILER_Wnoredundantdecls) # Warning
don't add '-' or '/' to the output variable!
+ cmake_pop_check_state()
+ if(COMPILER_Wnoredundantdecls)
target_compile_options(rapi PRIVATE -Wno-redundant-decls)
endif()
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list