summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2019-05-09 19:12:34 +0200
committerSergei Golubchik <serg@mariadb.org>2019-05-18 20:34:03 +0200
commit2400e06946bb5856684fd27ee86f610267bf4dc3 (patch)
treed27f225a2e102674c5b3cc4487a6f861154c4ca8
parent2c08436959dc0b0a6a4a58f18114dd9987151396 (diff)
downloadmariadb-git-2400e06946bb5856684fd27ee86f610267bf4dc3.tar.gz
remove -fno-rtti
-rw-r--r--cmake/build_configurations/mysql_release.cmake2
-rw-r--r--configure.cmake5
-rw-r--r--storage/mroonga/CMakeLists.txt7
-rw-r--r--storage/oqgraph/CMakeLists.txt25
-rw-r--r--storage/rocksdb/CMakeLists.txt23
-rw-r--r--storage/rocksdb/build_rocksdb.cmake2
-rw-r--r--storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake1
7 files changed, 6 insertions, 59 deletions
diff --git a/cmake/build_configurations/mysql_release.cmake b/cmake/build_configurations/mysql_release.cmake
index 91650e5e206..171dee0b84d 100644
--- a/cmake/build_configurations/mysql_release.cmake
+++ b/cmake/build_configurations/mysql_release.cmake
@@ -207,7 +207,7 @@ IF(UNIX)
IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
IF(CMAKE_C_COMPILER_ID MATCHES "Intel")
SET(COMMON_C_FLAGS "-static-intel -static-libgcc -g -mp -restrict")
- SET(COMMON_CXX_FLAGS "-static-intel -static-libgcc -g -mp -restrict -fno-exceptions -fno-rtti")
+ SET(COMMON_CXX_FLAGS "-static-intel -static-libgcc -g -mp -restrict -fno-exceptions")
IF(CMAKE_SYSTEM_PROCESSOR MATCHES "ia64")
SET(COMMON_C_FLAGS "${COMMON_C_FLAGS} -no-ftz -no-prefetch")
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} -no-ftz -no-prefetch")
diff --git a/configure.cmake b/configure.cmake
index 1404263e5a6..973312c7d2d 100644
--- a/configure.cmake
+++ b/configure.cmake
@@ -53,11 +53,6 @@ IF(NOT SYSTEM_TYPE)
ENDIF()
IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" AND (NOT MSVC))
- # MySQL "canonical" GCC flags. At least -fno-rtti flag affects
- # ABI and cannot be simply removed.
- SET(CMAKE_CXX_FLAGS
- "${CMAKE_CXX_FLAGS} -fno-rtti")
-
IF (CMAKE_EXE_LINKER_FLAGS MATCHES " -static "
OR CMAKE_EXE_LINKER_FLAGS MATCHES " -static$")
SET(HAVE_DLOPEN FALSE CACHE "Disable dlopen due to -static flag" FORCE)
diff --git a/storage/mroonga/CMakeLists.txt b/storage/mroonga/CMakeLists.txt
index cd50e7e022c..202b8582775 100644
--- a/storage/mroonga/CMakeLists.txt
+++ b/storage/mroonga/CMakeLists.txt
@@ -361,12 +361,7 @@ else()
MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-unused-parameter")
MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-strict-aliasing")
MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-deprecated")
- if(("${MYSQL_VARIANT}" STREQUAL "MariaDB") OR
- ("${MYSQL_VARIANT}" STREQUAL "MySQL" AND
- ${MYSQL_VERSION} VERSION_LESS "5.7.0"))
- MY_CHECK_AND_SET_COMPILER_FLAG("-fno-exceptions")
- MY_CHECK_AND_SET_COMPILER_FLAG("-fno-rtti")
- endif()
+ MY_CHECK_AND_SET_COMPILER_FLAG("-fno-exceptions")
MY_CHECK_AND_SET_COMPILER_FLAG("-felide-constructors")
MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-implicit-fallthrough")
endif()
diff --git a/storage/oqgraph/CMakeLists.txt b/storage/oqgraph/CMakeLists.txt
index 638ac00dc01..6199a648c2c 100644
--- a/storage/oqgraph/CMakeLists.txt
+++ b/storage/oqgraph/CMakeLists.txt
@@ -1,6 +1,6 @@
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
-FUNCTION(CHECK_OQGRAPH)
+MACRO(CHECK_OQGRAPH)
MESSAGE(STATUS "Configuring OQGraph")
FIND_PACKAGE(Boost 1.40.0)
IF(NOT Boost_FOUND)
@@ -17,27 +17,8 @@ IF(NOT Judy_FOUND)
RETURN()
ENDIF()
INCLUDE_DIRECTORIES(${Judy_INCLUDE_DIR})
-
-IF(MSVC)
-# # lp:756966 OQGRAPH on Win64 does not compile
-# IF (CMAKE_SIZEOF_VOID_P EQUAL 8)
-# SET(OQGRAPH_OK 0 CACHE INTERNAL "")
-# ELSE()
- SET(OQGRAPH_OK 1 CACHE INTERNAL "")
-# ENDIF()
-ELSE()
-# See if that works. On old gcc it'll fail because of -fno-rtti
-SET(CMAKE_REQUIRED_INCLUDES "${Boost_INCLUDE_DIRS}")
-CHECK_CXX_SOURCE_COMPILES(
-"
-#define BOOST_NO_RTTI 1
-#define BOOST_NO_TYPEID 1
-#include <boost/config.hpp>
-#include <boost/property_map/property_map.hpp>
-int main() { return 0; }
-" OQGRAPH_OK)
-ENDIF()
-ENDFUNCTION()
+SET(OQGRAPH_OK 1)
+ENDMACRO()
IF(NOT DEFINED OQGRAPH_OK)
CHECK_OQGRAPH()
diff --git a/storage/rocksdb/CMakeLists.txt b/storage/rocksdb/CMakeLists.txt
index e4906638f6c..70f2f8b32e0 100644
--- a/storage/rocksdb/CMakeLists.txt
+++ b/storage/rocksdb/CMakeLists.txt
@@ -163,26 +163,6 @@ TARGET_LINK_LIBRARIES(rocksdb rocksdb_aux_lib)
NAMES liblz4${PIC_EXT}.a lz4
HINTS ${WITH_LZ4}/lib)
-IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
-
- # MARIAROCKS_NOT_YET: Add -frtti flag when compiling RocksDB files.
- # TODO: is this the right way to do this?
- # - SQL layer and storage/rocksdb/*.cc are compiled with -fnortti
- # - RocksDB files are compiled with "-fnortti ... -frtti"
- # - This causes RocksDB headers to be compiled with different settings:
- # = with RTTI when compiling RocksDB
- # = without RTTI when compiling storage/rocksdb/*.cc
- #
- # (facebook/mysql-5.6 just compiles everything without -f*rtti, which means
- # everything is compiled with -frtti)
- #
- # (also had to add -frtti above, because something that event_listener.cc
- # includes requires it. So, now everything in MariaRocks is compiled with
- # -frtti)
- set_source_files_properties(event_listener.cc rdb_cf_options.cc rdb_sst_info.cc
- PROPERTIES COMPILE_FLAGS -frtti)
-ENDIF()
-
CHECK_FUNCTION_EXISTS(sched_getcpu HAVE_SCHED_GETCPU)
IF(HAVE_SCHED_GETCPU)
ADD_DEFINITIONS(-DHAVE_SCHED_GETCPU=1)
@@ -225,9 +205,6 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/myrocks_hotbackup.py
${CMAKE_CURRENT_BINARY_DIR}/myrocks_hotbackup @ONLY)
INSTALL_SCRIPT(${CMAKE_CURRENT_BINARY_DIR}/myrocks_hotbackup COMPONENT rocksdb-engine)
-IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- SET_TARGET_PROPERTIES(rocksdb_tools sst_dump mysql_ldb PROPERTIES COMPILE_FLAGS -frtti)
-ENDIF()
IF(MSVC)
# RocksDB, the storage engine, overdoes "const" by adding
# additional const qualifiers to parameters of the overriden virtual functions
diff --git a/storage/rocksdb/build_rocksdb.cmake b/storage/rocksdb/build_rocksdb.cmake
index c36c761f92f..aeb51188ffc 100644
--- a/storage/rocksdb/build_rocksdb.cmake
+++ b/storage/rocksdb/build_rocksdb.cmake
@@ -425,5 +425,5 @@ list(APPEND SOURCES ${CMAKE_CURRENT_BINARY_DIR}/build_version.cc)
ADD_CONVENIENCE_LIBRARY(rocksdblib ${SOURCES})
target_link_libraries(rocksdblib ${THIRDPARTY_LIBS} ${SYSTEM_LIBS})
IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- set_target_properties(rocksdblib PROPERTIES COMPILE_FLAGS "-fPIC -fno-builtin-memcmp -frtti")
+ set_target_properties(rocksdblib PROPERTIES COMPILE_FLAGS "-fPIC -fno-builtin-memcmp")
endif()
diff --git a/storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake b/storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake
index f62bbd2726c..741ca9c64b2 100644
--- a/storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake
+++ b/storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake
@@ -73,7 +73,6 @@ set_cflags_if_supported(
-Wno-error=tautological-constant-out-of-range-compare
-Wno-error=maybe-uninitialized
-Wno-error=extern-c-compat
- -fno-rtti
-fno-exceptions
-Wno-error=nonnull-compare
)