summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorSergey Vojtovich <svoj@mariadb.org>2016-04-19 16:16:13 +0400
committerSergey Vojtovich <svoj@mariadb.org>2016-04-20 15:59:19 +0400
commit0c0a865fad6c59b141892bfcb5be2dc2c11ae1a7 (patch)
tree126c86c817028e6f85abf5fca959895cc0a24320 /storage
parent62122ba5d5f02a731742af233a858da3ff4ad426 (diff)
downloadmariadb-git-0c0a865fad6c59b141892bfcb5be2dc2c11ae1a7.tar.gz
MDEV-9943 - TokuDB fails to compile with gcc 5.2.1
For some reason check_cxx_compiler_flag() passes result variable name down to compiler: https://github.com/Kitware/CMake/blob/master/Modules/CheckCXXSourceCompiles.cmake#L57 But compiler doesn't permit dashes in macro name, like in -DHAVE_CXX_-fimplicit-templates. Workarounded by renaming HAVE_CXX_-fimplicit-templates to HAVE_CXX_IMPLICIT_TEMPLAES.
Diffstat (limited to 'storage')
-rw-r--r--storage/tokudb/ft-index/cmake_modules/TokuSetupCompiler.cmake18
1 files changed, 10 insertions, 8 deletions
diff --git a/storage/tokudb/ft-index/cmake_modules/TokuSetupCompiler.cmake b/storage/tokudb/ft-index/cmake_modules/TokuSetupCompiler.cmake
index 99629e40bdb..fe99c9167d3 100644
--- a/storage/tokudb/ft-index/cmake_modules/TokuSetupCompiler.cmake
+++ b/storage/tokudb/ft-index/cmake_modules/TokuSetupCompiler.cmake
@@ -61,12 +61,13 @@ endmacro(set_cflags_if_supported_named)
## adds a compiler flag if the compiler supports it
macro(set_cflags_if_supported)
foreach(flag ${ARGN})
- check_c_compiler_flag(${flag} HAVE_C_${flag})
- if (HAVE_C_${flag})
+ STRING(REGEX REPLACE "[-,= ]" "_" res ${flag})
+ check_c_compiler_flag(${flag} HAVE_C_${res})
+ if (HAVE_C_${res})
set(CMAKE_C_FLAGS "${flag} ${CMAKE_C_FLAGS}")
endif ()
- check_cxx_compiler_flag(${flag} HAVE_CXX_${flag})
- if (HAVE_CXX_${flag})
+ check_cxx_compiler_flag(${flag} HAVE_CXX_${res})
+ if (HAVE_CXX_${res})
set(CMAKE_CXX_FLAGS "${flag} ${CMAKE_CXX_FLAGS}")
endif ()
endforeach(flag)
@@ -75,8 +76,9 @@ endmacro(set_cflags_if_supported)
## adds a linker flag if the compiler supports it
macro(set_ldflags_if_supported)
foreach(flag ${ARGN})
- check_cxx_compiler_flag(${flag} HAVE_${flag})
- if (HAVE_${flag})
+ STRING(REGEX REPLACE "[-,= ]" "_" res ${flag})
+ check_cxx_compiler_flag(${flag} HAVE_${res})
+ if (HAVE_${res})
set(CMAKE_EXE_LINKER_FLAGS "${flag} ${CMAKE_EXE_LINKER_FLAGS}")
set(CMAKE_SHARED_LINKER_FLAGS "${flag} ${CMAKE_SHARED_LINKER_FLAGS}")
endif ()
@@ -103,8 +105,8 @@ set_cflags_if_supported(
if (CMAKE_CXX_FLAGS MATCHES -fno-implicit-templates)
# must append this because mysql sets -fno-implicit-templates and we need to override it
- check_cxx_compiler_flag(-fimplicit-templates HAVE_CXX_-fimplicit-templates)
- if (HAVE_CXX_-fimplicit-templates)
+ check_cxx_compiler_flag(-fimplicit-templates HAVE_CXX_IMPLICIT_TEMPLATES)
+ if (HAVE_CXX_IMPLICIT_TEMPLATES)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fimplicit-templates")
endif ()
endif()