From 76e6041ec3d0b5154398a1f97230acac241fd09f Mon Sep 17 00:00:00 2001 From: Abdirahim Musse <33973272+abmusse@users.noreply.github.com> Date: Fri, 12 Jun 2020 12:48:33 -0500 Subject: [PATCH 1/2] refactor: use target_compile_options instead of global CMAKE_CXX_FLAGS* For now we want to always compile without optimizations because we found that using `-O2` causes issues selecting data from tables. Uur mariadb.spec adds `-O2` to CMAKE_CXX_FLAGS_RELWITHDEBINFO when the build type is RELWITHDEBINFO (which is the default). This then causes this storage engine to build with -O2 optimizations becuase CMAKE_CXX_FLAGS_RELWITHDEBINFO are added to the end of CMAKE_CXX_FLAGS. We can work around this issue by appending -O0 to CMAKE_CXX_FLAGS_RELWITHDEBINFO which will then cause -O0 to override the -O2 set previously but this pollutes the global CMAKE_CXX_FLAGS_RELWITHDEBINFO variable and causes everything to be built unoptimized. Instead we can use target_compile_options which only pass compile options for this target. --- CMakeLists.txt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c5ef4dd..bc6927d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,10 +1,6 @@ cmake_minimum_required (VERSION 2.8.0) project (ibmdb2i) -# Dave add -malign-power -malign-natural (below) -# Our power engine will run better. Also fewer gcc odd boundary over runs. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ggdb -O0") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -malign-power -malign-natural -ggdb -O0") -set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -malign-power -malign-natural -ggdb -O0") set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-brtl,-lc,-blibpath:/QOpenSys/pkgs/lib:/QOpenSys/usr/lib:/usr/lib,-bbigtoc,-lpthread,-liconv") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-brtl,-lc,-blibpath:/QOpenSys/pkgs/lib:/QOpenSys/usr/lib:/usr/lib,-bbigtoc,-lpthread,-liconv") set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-brtl,-lc,-blibpath:/QOpenSys/pkgs/lib:/QOpenSys/usr/lib:/usr/lib,-bbigtoc,-lpthread,-liconv") @@ -52,3 +48,6 @@ MYSQL_ADD_PLUGIN(ibmdb2i ${IBMDB2I_SOURCES} STORAGE_ENGINE MODULE_ONLY LINK_LIBRARIES ${PASELIB_LIBRARIES}) +# Dave add -malign-power -malign-natural (below) +# Our power engine will run better. Also fewer gcc odd boundary over runs. +target_compile_options(ibmdb2i PRIVATE -malign-power -malign-natural -ggdb -O0) From 76d74c21f32181f29c918497134a9ae70c968918 Mon Sep 17 00:00:00 2001 From: Abdirahim Musse <33973272+abmusse@users.noreply.github.com> Date: Fri, 12 Jun 2020 14:22:53 -0500 Subject: [PATCH 2/2] refactor: Do not set CMAKE_C_FLAGS Do not pollute the global CMAKE_C_FLAGS variable. Also this project only contains c++ source files. --- CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bc6927d..cbb4545 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,5 @@ cmake_minimum_required (VERSION 2.8.0) project (ibmdb2i) -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ggdb -O0") set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-brtl,-lc,-blibpath:/QOpenSys/pkgs/lib:/QOpenSys/usr/lib:/usr/lib,-bbigtoc,-lpthread,-liconv") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-brtl,-lc,-blibpath:/QOpenSys/pkgs/lib:/QOpenSys/usr/lib:/usr/lib,-bbigtoc,-lpthread,-liconv") set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-brtl,-lc,-blibpath:/QOpenSys/pkgs/lib:/QOpenSys/usr/lib:/usr/lib,-bbigtoc,-lpthread,-liconv")