Issues in tokudb CMakeLists.txt (found when merging in MariaDB):
1. in percona-server tokudb has:
---------------------------------------------
IF(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND
NOT CMAKE_VERSION VERSION_LESS "2.8.9" AND
NOT WITHOUT_TOKUDB AND NOT WITHOUT_TOKUDB_STORAGE_ENGINE)
CHECK_CXX_SOURCE_COMPILES(
"
struct a {int b; int c; };
struct a d = { .b=1, .c=2 };
int main() { return 0; }
" TOKUDB_OK)
ENDIF()
IF(NOT TOKUDB_OK)
RETURN()
ENDIF()
IF(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND
---------------------------------------------
In MariaDB it is:
---------------------------------------------
IF(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND
NOT CMAKE_VERSION VERSION_LESS "2.8.9")
CHECK_CXX_SOURCE_COMPILES(
"
struct a {int b; int c; };
struct a d = { .b=1, .c=2 };
int main() { return 0; }
" TOKUDB_OK)
ENDIF()
IF(NOT TOKUDB_OK OR WITHOUT_TOKUDB OR WITHOUT_TOKUDB_STORAGE_ENGINE)
RETURN()
ENDIF()
---------------------------------------------
This was changed (from the code that you have) in https://github.com/MariaDB/server/commit/00464252
with the comment:
Fix "cmake . && cmake -DWITHOUT_TOKUDB=1" to disable tokudb
2. You have
---------------------------------------------
SET_PROPERTY(TARGET tokudb APPEND PROPERTY LINK_FLAGS_RELEASE "-flto -fuse-linker-plugin")
SET_PROPERTY(TARGET tokudb APPEND PROPERTY LINK_FLAGS_RELWITHDEBINFO "-flto -fuse-linker-plugin")
---------------------------------------------
This is generally a bad idea for plugins, because the "tokudb" target may not
exist and cmake will fail.
Either do it as in MariaDB:
---------------------------------------------
SET(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} -flto -fuse-linker-plugin")
SET(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO} -flto -fuse-linker-plugin")
---------------------------------------------
or check whether a target exists:
---------------------------------------------
IF(TARGET tokudb)
SET_PROPERTY(TARGET tokudb APPEND PROPERTY LINK_FLAGS_RELEASE "-flto -fuse-linker-plugin")
SET_PROPERTY(TARGET tokudb APPEND PROPERTY LINK_FLAGS_RELWITHDEBINFO "-flto -fuse-linker-plugin")
ENDIF()
---------------------------------------------
3. Unlike MariaDB, you don't add -Wno-vla to compiler flags. Is that not an
issue anymore? Or you simpy never use any warning levels that imply -Wvla?
TokuDB used to put -Werror on the compiler line so any warning was fatal.
Issues in tokudb CMakeLists.txt (found when merging in MariaDB):
1. in percona-server tokudb has: ------- ------- ------- ------- ------- --- SYSTEM_ PROCESSOR STREQUAL "x86_64" AND TOKUDB_ STORAGE_ ENGINE) SOURCE_ COMPILES(
-------
IF(CMAKE_
NOT CMAKE_VERSION VERSION_LESS "2.8.9" AND
NOT WITHOUT_TOKUDB AND NOT WITHOUT_
CHECK_CXX_
"
struct a {int b; int c; };
struct a d = { .b=1, .c=2 };
int main() { return 0; }
" TOKUDB_OK)
ENDIF()
IF(NOT TOKUDB_OK) SYSTEM_ PROCESSOR STREQUAL "x86_64" AND ------- ------- ------- ------- ------- ---
RETURN()
ENDIF()
IF(CMAKE_
-------
In MariaDB it is: ------- ------- ------- ------- ------- --- SYSTEM_ PROCESSOR STREQUAL "x86_64" AND SOURCE_ COMPILES(
-------
IF(CMAKE_
NOT CMAKE_VERSION VERSION_LESS "2.8.9")
CHECK_CXX_
"
struct a {int b; int c; };
struct a d = { .b=1, .c=2 };
int main() { return 0; }
" TOKUDB_OK)
ENDIF()
IF(NOT TOKUDB_OK OR WITHOUT_TOKUDB OR WITHOUT_ TOKUDB_ STORAGE_ ENGINE) ------- ------- ------- ------- ------- --- /github. com/MariaDB/ server/ commit/ 00464252
RETURN()
ENDIF()
-------
This was changed (from the code that you have) in
https:/
with the comment:
Fix "cmake . && cmake -DWITHOUT_TOKUDB=1" to disable tokudb
2. You have ------- ------- ------- ------- ------- --- plugin" ) RELWITHDEBINFO "-flto -fuse-linker- plugin" ) ------- ------- ------- ------- ------- ---
-------
SET_PROPERTY(TARGET tokudb APPEND PROPERTY LINK_FLAGS_RELEASE "-flto -fuse-linker-
SET_PROPERTY(TARGET tokudb APPEND PROPERTY LINK_FLAGS_
-------
This is generally a bad idea for plugins, because the "tokudb" target may not
exist and cmake will fail.
Either do it as in MariaDB: ------- ------- ------- ------- ------- --- MODULE_ LINKER_ FLAGS_RELEASE "${CMAKE_ MODULE_ LINKER_ FLAGS_RELEASE} -flto -fuse-linker- plugin" ) MODULE_ LINKER_ FLAGS_RELWITHDE BINFO "${CMAKE_ MODULE_ LINKER_ FLAGS_RELWITHDE BINFO} -flto -fuse-linker- plugin" ) ------- ------- ------- ------- ------- --- ------- ------- ------- ------- ------- --- TARGET tokudb APPEND PROPERTY LINK_FLAGS_RELEASE "-flto -fuse-linker- plugin" ) TARGET tokudb APPEND PROPERTY LINK_FLAGS_ RELWITHDEBINFO "-flto -fuse-linker- plugin" ) ------- ------- ------- ------- ------- ---
-------
SET(CMAKE_
SET(CMAKE_
-------
or check whether a target exists:
-------
IF(TARGET tokudb)
SET_PROPERTY(
SET_PROPERTY(
ENDIF()
-------
3. Unlike MariaDB, you don't add -Wno-vla to compiler flags. Is that not an
issue anymore? Or you simpy never use any warning levels that imply -Wvla?
TokuDB used to put -Werror on the compiler line so any warning was fatal.