Commit 0c0a865f authored by Sergey Vojtovich's avatar Sergey Vojtovich

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.
parent 62122ba5
...@@ -61,12 +61,13 @@ endmacro(set_cflags_if_supported_named) ...@@ -61,12 +61,13 @@ endmacro(set_cflags_if_supported_named)
## adds a compiler flag if the compiler supports it ## adds a compiler flag if the compiler supports it
macro(set_cflags_if_supported) macro(set_cflags_if_supported)
foreach(flag ${ARGN}) foreach(flag ${ARGN})
check_c_compiler_flag(${flag} HAVE_C_${flag}) STRING(REGEX REPLACE "[-,= ]" "_" res ${flag})
if (HAVE_C_${flag}) check_c_compiler_flag(${flag} HAVE_C_${res})
if (HAVE_C_${res})
set(CMAKE_C_FLAGS "${flag} ${CMAKE_C_FLAGS}") set(CMAKE_C_FLAGS "${flag} ${CMAKE_C_FLAGS}")
endif () endif ()
check_cxx_compiler_flag(${flag} HAVE_CXX_${flag}) check_cxx_compiler_flag(${flag} HAVE_CXX_${res})
if (HAVE_CXX_${flag}) if (HAVE_CXX_${res})
set(CMAKE_CXX_FLAGS "${flag} ${CMAKE_CXX_FLAGS}") set(CMAKE_CXX_FLAGS "${flag} ${CMAKE_CXX_FLAGS}")
endif () endif ()
endforeach(flag) endforeach(flag)
...@@ -75,8 +76,9 @@ endmacro(set_cflags_if_supported) ...@@ -75,8 +76,9 @@ endmacro(set_cflags_if_supported)
## adds a linker flag if the compiler supports it ## adds a linker flag if the compiler supports it
macro(set_ldflags_if_supported) macro(set_ldflags_if_supported)
foreach(flag ${ARGN}) foreach(flag ${ARGN})
check_cxx_compiler_flag(${flag} HAVE_${flag}) STRING(REGEX REPLACE "[-,= ]" "_" res ${flag})
if (HAVE_${flag}) check_cxx_compiler_flag(${flag} HAVE_${res})
if (HAVE_${res})
set(CMAKE_EXE_LINKER_FLAGS "${flag} ${CMAKE_EXE_LINKER_FLAGS}") set(CMAKE_EXE_LINKER_FLAGS "${flag} ${CMAKE_EXE_LINKER_FLAGS}")
set(CMAKE_SHARED_LINKER_FLAGS "${flag} ${CMAKE_SHARED_LINKER_FLAGS}") set(CMAKE_SHARED_LINKER_FLAGS "${flag} ${CMAKE_SHARED_LINKER_FLAGS}")
endif () endif ()
...@@ -103,8 +105,8 @@ set_cflags_if_supported( ...@@ -103,8 +105,8 @@ set_cflags_if_supported(
if (CMAKE_CXX_FLAGS MATCHES -fno-implicit-templates) if (CMAKE_CXX_FLAGS MATCHES -fno-implicit-templates)
# must append this because mysql sets -fno-implicit-templates and we need to override it # 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) check_cxx_compiler_flag(-fimplicit-templates HAVE_CXX_IMPLICIT_TEMPLATES)
if (HAVE_CXX_-fimplicit-templates) if (HAVE_CXX_IMPLICIT_TEMPLATES)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fimplicit-templates") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fimplicit-templates")
endif () endif ()
endif() endif()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment