Activity log for bug #1510092

Date Who What changed Old value New value Message
2015-10-26 13:43:55 Sergei Golubchik bug added bug
2015-10-26 13:44:38 Sergei Golubchik tags tokudb
2015-10-26 13:55:49 Sergei Golubchik description I'll just put everything in one bug report :) 1. storage/tokudb/PerconaFT/cmake_modules/FindValgrind.cmake I've changed - find_package_handle_standard_args(VALGRIND DEFAULT_MSG + find_package_handle_standard_args(Valgrind DEFAULT_MSG with the comment "correct the package name in FindValgrind.cmake (for find_package(... REQUIRED) to work)" 2. storage/tokudb/PerconaFT/cmake_modules/TokuMergeLibs.cmake I've commented out - LIST(REMOVE_DUPLICATES OSLIBS) - #LIST(REMOVE_DUPLICATES OSLIBS) with the comment Libraries must be specified in the specific order, REMOVE_DUPLICATES cannot be used, because it destroys this order. (when OSLIBS contains "-lpthread -ljemalloc -lpthread", REMOVE_DUPLICATES makes it "-lpthread -ljemalloc". But a thread library *must* be *after* jemalloc) 3. storage/tokudb/PerconaFT/cmake_modules/TokuSetupCTest.cmake execute_process( COMMAND which ${filename} RESULT_VARIABLE res + ERROR_QUIET OUTPUT_VARIABLE full_filename OUTPUT_STRIP_TRAILING_WHITESPACE) with the comment "'which' might print errors to stderr, they are not important, shut them up" execute_process( COMMAND hostname OUTPUT_VARIABLE fullhostname OUTPUT_STRIP_TRAILING_WHITESPACE) - string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} ${fullhostname}) + string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} "${fullhostname}") "MDEV-5124 cmake failure when fullhostname is not resolved expand fullhostname inside the string, to have an empty string, not nothing, when fullhostname is not defined" - configure_file(CTestCustom.cmake . @ONLY) + configure_file(CTestCustom.cmake.in CTestCustom.cmake @ONLY) "don't configure_file into itself (with input=output)" I'll just put everything in one bug report :) 1. storage/tokudb/PerconaFT/cmake_modules/FindValgrind.cmake I've changed - find_package_handle_standard_args(VALGRIND DEFAULT_MSG + find_package_handle_standard_args(Valgrind DEFAULT_MSG with the comment "correct the package name in FindValgrind.cmake (for find_package(... REQUIRED) to work)" 2. storage/tokudb/PerconaFT/cmake_modules/TokuMergeLibs.cmake I've commented out - LIST(REMOVE_DUPLICATES OSLIBS) + #LIST(REMOVE_DUPLICATES OSLIBS) with the comment   Libraries must be specified in the specific order,   REMOVE_DUPLICATES cannot be used, because it destroys this order.   (when OSLIBS contains "-lpthread -ljemalloc -lpthread", REMOVE_DUPLICATES   makes it "-lpthread -ljemalloc". But a thread library *must* be *after* jemalloc) 3. storage/tokudb/PerconaFT/cmake_modules/TokuSetupCTest.cmake     execute_process(       COMMAND which ${filename}       RESULT_VARIABLE res + ERROR_QUIET       OUTPUT_VARIABLE full_filename       OUTPUT_STRIP_TRAILING_WHITESPACE) with the comment "'which' might print errors to stderr, they are not important, shut them up"   execute_process(     COMMAND hostname     OUTPUT_VARIABLE fullhostname     OUTPUT_STRIP_TRAILING_WHITESPACE) - string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} ${fullhostname}) + string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} "${fullhostname}") "MDEV-5124 cmake failure when fullhostname is not resolved expand fullhostname inside the string, to have an empty string, not nothing, when fullhostname is not defined" - configure_file(CTestCustom.cmake . @ONLY) + configure_file(CTestCustom.cmake.in CTestCustom.cmake @ONLY) "don't configure_file into itself (with input=output)" 4. storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake - if (NOT DEFINED LIBJEMALLOC) + if (CMAKE_PROJECT_NAME STREQUAL TokuDB) this code (forcing libjemalloc) should only be used when PerconaFT is compiled as an independent project. When it's inside the Percona Server, the top-level CMakeLists.txt makes these server-wide decisions, not individual engine. - list(APPEND xz_configure_opts CC=${CMAKE_C_COMPILER}) + list(APPEND xz_configure_opts "CC=${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}") "Fixed tokudb with ccache build failure." ExternalProject_Add(build_lzma PREFIX xz DOWNLOAD_COMMAND cp -a "${XZ_ALL_FILES}" "<SOURCE_DIR>/" CONFIGURE_COMMAND "<SOURCE_DIR>/configure" ${xz_configure_opts} "--prefix=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz" + "--libdir=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz/lib" BUILD_COMMAND ${SUBMAKE_COMMAND} -C src/liblzma INSTALL_COMMAND ${SUBMAKE_COMMAND} -C src/liblzma install ) That was needed on SuSE where the linker put the library in .../xz/lib64 and the code below (in the same cmake file) was not able to find it.
2015-10-26 13:56:08 Sergei Golubchik description I'll just put everything in one bug report :) 1. storage/tokudb/PerconaFT/cmake_modules/FindValgrind.cmake I've changed - find_package_handle_standard_args(VALGRIND DEFAULT_MSG + find_package_handle_standard_args(Valgrind DEFAULT_MSG with the comment "correct the package name in FindValgrind.cmake (for find_package(... REQUIRED) to work)" 2. storage/tokudb/PerconaFT/cmake_modules/TokuMergeLibs.cmake I've commented out - LIST(REMOVE_DUPLICATES OSLIBS) + #LIST(REMOVE_DUPLICATES OSLIBS) with the comment   Libraries must be specified in the specific order,   REMOVE_DUPLICATES cannot be used, because it destroys this order.   (when OSLIBS contains "-lpthread -ljemalloc -lpthread", REMOVE_DUPLICATES   makes it "-lpthread -ljemalloc". But a thread library *must* be *after* jemalloc) 3. storage/tokudb/PerconaFT/cmake_modules/TokuSetupCTest.cmake     execute_process(       COMMAND which ${filename}       RESULT_VARIABLE res + ERROR_QUIET       OUTPUT_VARIABLE full_filename       OUTPUT_STRIP_TRAILING_WHITESPACE) with the comment "'which' might print errors to stderr, they are not important, shut them up"   execute_process(     COMMAND hostname     OUTPUT_VARIABLE fullhostname     OUTPUT_STRIP_TRAILING_WHITESPACE) - string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} ${fullhostname}) + string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} "${fullhostname}") "MDEV-5124 cmake failure when fullhostname is not resolved expand fullhostname inside the string, to have an empty string, not nothing, when fullhostname is not defined" - configure_file(CTestCustom.cmake . @ONLY) + configure_file(CTestCustom.cmake.in CTestCustom.cmake @ONLY) "don't configure_file into itself (with input=output)" 4. storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake - if (NOT DEFINED LIBJEMALLOC) + if (CMAKE_PROJECT_NAME STREQUAL TokuDB) this code (forcing libjemalloc) should only be used when PerconaFT is compiled as an independent project. When it's inside the Percona Server, the top-level CMakeLists.txt makes these server-wide decisions, not individual engine. - list(APPEND xz_configure_opts CC=${CMAKE_C_COMPILER}) + list(APPEND xz_configure_opts "CC=${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}") "Fixed tokudb with ccache build failure." ExternalProject_Add(build_lzma PREFIX xz DOWNLOAD_COMMAND cp -a "${XZ_ALL_FILES}" "<SOURCE_DIR>/" CONFIGURE_COMMAND "<SOURCE_DIR>/configure" ${xz_configure_opts} "--prefix=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz" + "--libdir=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz/lib" BUILD_COMMAND ${SUBMAKE_COMMAND} -C src/liblzma INSTALL_COMMAND ${SUBMAKE_COMMAND} -C src/liblzma install ) That was needed on SuSE where the linker put the library in .../xz/lib64 and the code below (in the same cmake file) was not able to find it. I'll just put everything in one bug report :) 1. storage/tokudb/PerconaFT/cmake_modules/FindValgrind.cmake I've changed - find_package_handle_standard_args(VALGRIND DEFAULT_MSG + find_package_handle_standard_args(Valgrind DEFAULT_MSG with the comment "correct the package name in FindValgrind.cmake (for find_package(... REQUIRED) to work)" 2. storage/tokudb/PerconaFT/cmake_modules/TokuMergeLibs.cmake I've commented out - LIST(REMOVE_DUPLICATES OSLIBS) + #LIST(REMOVE_DUPLICATES OSLIBS) with the comment   Libraries must be specified in the specific order,   REMOVE_DUPLICATES cannot be used, because it destroys this order.   (when OSLIBS contains "-lpthread -ljemalloc -lpthread", REMOVE_DUPLICATES   makes it "-lpthread -ljemalloc". But a thread library *must* be *after* jemalloc) 3. storage/tokudb/PerconaFT/cmake_modules/TokuSetupCTest.cmake     execute_process(       COMMAND which ${filename}       RESULT_VARIABLE res + ERROR_QUIET       OUTPUT_VARIABLE full_filename       OUTPUT_STRIP_TRAILING_WHITESPACE) with the comment "'which' might print errors to stderr, they are not important, shut them up"   execute_process(     COMMAND hostname     OUTPUT_VARIABLE fullhostname     OUTPUT_STRIP_TRAILING_WHITESPACE) - string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} ${fullhostname}) + string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} "${fullhostname}") "MDEV-5124 cmake failure when fullhostname is not resolved expand fullhostname inside the string, to have an empty string, not nothing, when fullhostname is not defined" - configure_file(CTestCustom.cmake . @ONLY) + configure_file(CTestCustom.cmake.in CTestCustom.cmake @ONLY) "don't configure_file into itself (with input=output)" 4. storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake - if (NOT DEFINED LIBJEMALLOC) + if (CMAKE_PROJECT_NAME STREQUAL TokuDB) this code (forcing libjemalloc) should only be used when PerconaFT is compiled as an independent project. When it's inside the Percona Server, the top-level CMakeLists.txt makes these server-wide decisions, not individual engine. - list(APPEND xz_configure_opts CC=${CMAKE_C_COMPILER}) + list(APPEND xz_configure_opts "CC=${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}") "Fixed tokudb with ccache build failure." ExternalProject_Add(build_lzma     PREFIX xz     DOWNLOAD_COMMAND         cp -a "${XZ_ALL_FILES}" "<SOURCE_DIR>/"     CONFIGURE_COMMAND         "<SOURCE_DIR>/configure" ${xz_configure_opts}         "--prefix=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz" + "--libdir=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz/lib"     BUILD_COMMAND         ${SUBMAKE_COMMAND} -C src/liblzma     INSTALL_COMMAND         ${SUBMAKE_COMMAND} -C src/liblzma install ) That was needed on SuSE where the linker put the library in .../xz/lib64 and the code below (in the same cmake file) was not able to find it. 5. to be continued...
2015-10-26 13:57:40 Laurynas Biveinis nominated for series percona-server/5.5
2015-10-26 13:57:40 Laurynas Biveinis bug task added percona-server/5.5
2015-10-26 13:57:40 Laurynas Biveinis nominated for series percona-server/5.6
2015-10-26 13:57:40 Laurynas Biveinis bug task added percona-server/5.6
2015-10-26 13:57:52 Laurynas Biveinis percona-server/5.5: status New Invalid
2015-10-26 13:58:18 Laurynas Biveinis percona-server/5.6: importance Undecided Medium
2015-10-26 13:58:20 Laurynas Biveinis percona-server/5.6: status New Triaged
2015-10-26 16:19:52 Sergei Golubchik description I'll just put everything in one bug report :) 1. storage/tokudb/PerconaFT/cmake_modules/FindValgrind.cmake I've changed - find_package_handle_standard_args(VALGRIND DEFAULT_MSG + find_package_handle_standard_args(Valgrind DEFAULT_MSG with the comment "correct the package name in FindValgrind.cmake (for find_package(... REQUIRED) to work)" 2. storage/tokudb/PerconaFT/cmake_modules/TokuMergeLibs.cmake I've commented out - LIST(REMOVE_DUPLICATES OSLIBS) + #LIST(REMOVE_DUPLICATES OSLIBS) with the comment   Libraries must be specified in the specific order,   REMOVE_DUPLICATES cannot be used, because it destroys this order.   (when OSLIBS contains "-lpthread -ljemalloc -lpthread", REMOVE_DUPLICATES   makes it "-lpthread -ljemalloc". But a thread library *must* be *after* jemalloc) 3. storage/tokudb/PerconaFT/cmake_modules/TokuSetupCTest.cmake     execute_process(       COMMAND which ${filename}       RESULT_VARIABLE res + ERROR_QUIET       OUTPUT_VARIABLE full_filename       OUTPUT_STRIP_TRAILING_WHITESPACE) with the comment "'which' might print errors to stderr, they are not important, shut them up"   execute_process(     COMMAND hostname     OUTPUT_VARIABLE fullhostname     OUTPUT_STRIP_TRAILING_WHITESPACE) - string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} ${fullhostname}) + string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} "${fullhostname}") "MDEV-5124 cmake failure when fullhostname is not resolved expand fullhostname inside the string, to have an empty string, not nothing, when fullhostname is not defined" - configure_file(CTestCustom.cmake . @ONLY) + configure_file(CTestCustom.cmake.in CTestCustom.cmake @ONLY) "don't configure_file into itself (with input=output)" 4. storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake - if (NOT DEFINED LIBJEMALLOC) + if (CMAKE_PROJECT_NAME STREQUAL TokuDB) this code (forcing libjemalloc) should only be used when PerconaFT is compiled as an independent project. When it's inside the Percona Server, the top-level CMakeLists.txt makes these server-wide decisions, not individual engine. - list(APPEND xz_configure_opts CC=${CMAKE_C_COMPILER}) + list(APPEND xz_configure_opts "CC=${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}") "Fixed tokudb with ccache build failure." ExternalProject_Add(build_lzma     PREFIX xz     DOWNLOAD_COMMAND         cp -a "${XZ_ALL_FILES}" "<SOURCE_DIR>/"     CONFIGURE_COMMAND         "<SOURCE_DIR>/configure" ${xz_configure_opts}         "--prefix=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz" + "--libdir=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz/lib"     BUILD_COMMAND         ${SUBMAKE_COMMAND} -C src/liblzma     INSTALL_COMMAND         ${SUBMAKE_COMMAND} -C src/liblzma install ) That was needed on SuSE where the linker put the library in .../xz/lib64 and the code below (in the same cmake file) was not able to find it. 5. to be continued... I'll just put everything in one bug report :) 1. storage/tokudb/PerconaFT/cmake_modules/FindValgrind.cmake I've changed - find_package_handle_standard_args(VALGRIND DEFAULT_MSG + find_package_handle_standard_args(Valgrind DEFAULT_MSG with the comment "correct the package name in FindValgrind.cmake (for find_package(... REQUIRED) to work)" 2. storage/tokudb/PerconaFT/cmake_modules/TokuMergeLibs.cmake I've commented out - LIST(REMOVE_DUPLICATES OSLIBS) + #LIST(REMOVE_DUPLICATES OSLIBS) with the comment   Libraries must be specified in the specific order,   REMOVE_DUPLICATES cannot be used, because it destroys this order.   (when OSLIBS contains "-lpthread -ljemalloc -lpthread", REMOVE_DUPLICATES   makes it "-lpthread -ljemalloc". But a thread library *must* be *after* jemalloc) 3. storage/tokudb/PerconaFT/cmake_modules/TokuSetupCTest.cmake     execute_process(       COMMAND which ${filename}       RESULT_VARIABLE res + ERROR_QUIET       OUTPUT_VARIABLE full_filename       OUTPUT_STRIP_TRAILING_WHITESPACE) with the comment "'which' might print errors to stderr, they are not important, shut them up"   execute_process(     COMMAND hostname     OUTPUT_VARIABLE fullhostname     OUTPUT_STRIP_TRAILING_WHITESPACE) - string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} ${fullhostname}) + string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} "${fullhostname}") "MDEV-5124 cmake failure when fullhostname is not resolved expand fullhostname inside the string, to have an empty string, not nothing, when fullhostname is not defined" - configure_file(CTestCustom.cmake . @ONLY) + configure_file(CTestCustom.cmake.in CTestCustom.cmake @ONLY) "don't configure_file into itself (with input=output)" also CTestCustom.cmake must be renamed to CTestCustom.cmake.in 4. storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake - if (NOT DEFINED LIBJEMALLOC) + if (CMAKE_PROJECT_NAME STREQUAL TokuDB) this code (forcing libjemalloc) should only be used when PerconaFT is compiled as an independent project. When it's inside the Percona Server, the top-level CMakeLists.txt makes these server-wide decisions, not individual engine. - list(APPEND xz_configure_opts CC=${CMAKE_C_COMPILER}) + list(APPEND xz_configure_opts "CC=${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}") "Fixed tokudb with ccache build failure." ExternalProject_Add(build_lzma     PREFIX xz     DOWNLOAD_COMMAND         cp -a "${XZ_ALL_FILES}" "<SOURCE_DIR>/"     CONFIGURE_COMMAND         "<SOURCE_DIR>/configure" ${xz_configure_opts}         "--prefix=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz" + "--libdir=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz/lib"     BUILD_COMMAND         ${SUBMAKE_COMMAND} -C src/liblzma     INSTALL_COMMAND         ${SUBMAKE_COMMAND} -C src/liblzma install ) That was needed on SuSE where libtool put the library in <...>/xz/lib64 and the code below (in the same cmake file) was not able to find it. 5. storage/tokudb/PerconaFT/ft/tests/CMakeLists.txt another one of - add_executable(${test} ${test}) + add_executable(${test} ${test}.cc) 6.
2015-10-26 18:02:14 Sergei Golubchik description I'll just put everything in one bug report :) 1. storage/tokudb/PerconaFT/cmake_modules/FindValgrind.cmake I've changed - find_package_handle_standard_args(VALGRIND DEFAULT_MSG + find_package_handle_standard_args(Valgrind DEFAULT_MSG with the comment "correct the package name in FindValgrind.cmake (for find_package(... REQUIRED) to work)" 2. storage/tokudb/PerconaFT/cmake_modules/TokuMergeLibs.cmake I've commented out - LIST(REMOVE_DUPLICATES OSLIBS) + #LIST(REMOVE_DUPLICATES OSLIBS) with the comment   Libraries must be specified in the specific order,   REMOVE_DUPLICATES cannot be used, because it destroys this order.   (when OSLIBS contains "-lpthread -ljemalloc -lpthread", REMOVE_DUPLICATES   makes it "-lpthread -ljemalloc". But a thread library *must* be *after* jemalloc) 3. storage/tokudb/PerconaFT/cmake_modules/TokuSetupCTest.cmake     execute_process(       COMMAND which ${filename}       RESULT_VARIABLE res + ERROR_QUIET       OUTPUT_VARIABLE full_filename       OUTPUT_STRIP_TRAILING_WHITESPACE) with the comment "'which' might print errors to stderr, they are not important, shut them up"   execute_process(     COMMAND hostname     OUTPUT_VARIABLE fullhostname     OUTPUT_STRIP_TRAILING_WHITESPACE) - string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} ${fullhostname}) + string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} "${fullhostname}") "MDEV-5124 cmake failure when fullhostname is not resolved expand fullhostname inside the string, to have an empty string, not nothing, when fullhostname is not defined" - configure_file(CTestCustom.cmake . @ONLY) + configure_file(CTestCustom.cmake.in CTestCustom.cmake @ONLY) "don't configure_file into itself (with input=output)" also CTestCustom.cmake must be renamed to CTestCustom.cmake.in 4. storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake - if (NOT DEFINED LIBJEMALLOC) + if (CMAKE_PROJECT_NAME STREQUAL TokuDB) this code (forcing libjemalloc) should only be used when PerconaFT is compiled as an independent project. When it's inside the Percona Server, the top-level CMakeLists.txt makes these server-wide decisions, not individual engine. - list(APPEND xz_configure_opts CC=${CMAKE_C_COMPILER}) + list(APPEND xz_configure_opts "CC=${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}") "Fixed tokudb with ccache build failure." ExternalProject_Add(build_lzma     PREFIX xz     DOWNLOAD_COMMAND         cp -a "${XZ_ALL_FILES}" "<SOURCE_DIR>/"     CONFIGURE_COMMAND         "<SOURCE_DIR>/configure" ${xz_configure_opts}         "--prefix=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz" + "--libdir=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz/lib"     BUILD_COMMAND         ${SUBMAKE_COMMAND} -C src/liblzma     INSTALL_COMMAND         ${SUBMAKE_COMMAND} -C src/liblzma install ) That was needed on SuSE where libtool put the library in <...>/xz/lib64 and the code below (in the same cmake file) was not able to find it. 5. storage/tokudb/PerconaFT/ft/tests/CMakeLists.txt another one of - add_executable(${test} ${test}) + add_executable(${test} ${test}.cc) 6. I'll just put everything in one bug report :) 1. storage/tokudb/PerconaFT/cmake_modules/FindValgrind.cmake I've changed - find_package_handle_standard_args(VALGRIND DEFAULT_MSG + find_package_handle_standard_args(Valgrind DEFAULT_MSG with the comment "correct the package name in FindValgrind.cmake (for find_package(... REQUIRED) to work)" 2. storage/tokudb/PerconaFT/cmake_modules/TokuMergeLibs.cmake I've commented out - LIST(REMOVE_DUPLICATES OSLIBS) + #LIST(REMOVE_DUPLICATES OSLIBS) with the comment   Libraries must be specified in the specific order,   REMOVE_DUPLICATES cannot be used, because it destroys this order.   (when OSLIBS contains "-lpthread -ljemalloc -lpthread", REMOVE_DUPLICATES   makes it "-lpthread -ljemalloc". But a thread library *must* be *after* jemalloc) 3. storage/tokudb/PerconaFT/cmake_modules/TokuSetupCTest.cmake     execute_process(       COMMAND which ${filename}       RESULT_VARIABLE res + ERROR_QUIET       OUTPUT_VARIABLE full_filename       OUTPUT_STRIP_TRAILING_WHITESPACE) with the comment "'which' might print errors to stderr, they are not important, shut them up"   execute_process(     COMMAND hostname     OUTPUT_VARIABLE fullhostname     OUTPUT_STRIP_TRAILING_WHITESPACE) - string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} ${fullhostname}) + string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} "${fullhostname}") "MDEV-5124 cmake failure when fullhostname is not resolved expand fullhostname inside the string, to have an empty string, not nothing, when fullhostname is not defined" - configure_file(CTestCustom.cmake . @ONLY) + configure_file(CTestCustom.cmake.in CTestCustom.cmake @ONLY) "don't configure_file into itself (with input=output)" also CTestCustom.cmake must be renamed to CTestCustom.cmake.in 4. storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake - if (NOT DEFINED LIBJEMALLOC) + if (CMAKE_PROJECT_NAME STREQUAL TokuDB) this code (forcing libjemalloc) should only be used when PerconaFT is compiled as an independent project. When it's inside the Percona Server, the top-level CMakeLists.txt makes these server-wide decisions, not individual engine. - list(APPEND xz_configure_opts CC=${CMAKE_C_COMPILER}) + list(APPEND xz_configure_opts "CC=${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}") "Fixed tokudb with ccache build failure." ExternalProject_Add(build_lzma     PREFIX xz     DOWNLOAD_COMMAND         cp -a "${XZ_ALL_FILES}" "<SOURCE_DIR>/"     CONFIGURE_COMMAND         "<SOURCE_DIR>/configure" ${xz_configure_opts}         "--prefix=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz" + "--libdir=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz/lib"     BUILD_COMMAND         ${SUBMAKE_COMMAND} -C src/liblzma     INSTALL_COMMAND         ${SUBMAKE_COMMAND} -C src/liblzma install ) That was needed on SuSE where libtool put the library in <...>/xz/lib64 and the code below (in the same cmake file) was not able to find it. 5. storage/tokudb/PerconaFT/ft/tests/CMakeLists.txt another one of - add_executable(${test} ${test}) + add_executable(${test} ${test}.cc) 6. storage/tokudb/PerconaFT/locktree/tests/CMakeLists.txt - add_executable(${base} ${base}) + add_executable(${base} ${base}.cc) 7. storage/tokudb/PerconaFT/portability/tests/CMakeLists.txt - add_executable(${test} ${test}) + add_executable(${test} ${test}.cc) 8. storage/tokudb/PerconaFT/src/CMakeLists.txt - target_link_libraries(${LIBTOKUDB} LINK_PUBLIC z) + target_link_libraries(${LIBTOKUDB} LINK_PUBLIC ${ZLIB_LIBRARY} ) tokudb should respect server-global zlib settings and link with bundled zlib, if user has selected that configuration 9. storage/tokudb/PerconaFT/src/tests/CMakeLists.txt - add_executable(test-5138.tdb test-5138) + add_executable(test-5138.tdb test-5138.cc) and - add_executable(${base}.tdb ${base}) + add_executable(${base}.tdb ${base}.cc) 10. storage/tokudb/PerconaFT/tools/CMakeLists.txt - add_executable(${tool} ${tool}) + add_executable(${tool} ${tool}.cc) and - install(TARGETS tokuftdump DESTINATION bin COMPONENT tokukv_tools) - install(TARGETS tokuft_logprint DESTINATION bin COMPONENT tokukv_tools) + install(TARGETS tokuftdump DESTINATION ${INSTALL_BINDIR} COMPONENT Server) + install(TARGETS tokuft_logprint DESTINATION ${INSTALL_BINDIR} COMPONENT Server) The DESTINATION should follow server-wide settings from install_layout.cmake. But you might not care about the correct COMPONENT here, if you don't use components at all in your cmake files. 11. storage/tokudb/PerconaFT/util/tests/CMakeLists.txt - add_executable(${test} ${test}) + add_executable(${test} ${test}.cc) === that's all
2015-10-26 20:02:59 Sergei Golubchik description I'll just put everything in one bug report :) 1. storage/tokudb/PerconaFT/cmake_modules/FindValgrind.cmake I've changed - find_package_handle_standard_args(VALGRIND DEFAULT_MSG + find_package_handle_standard_args(Valgrind DEFAULT_MSG with the comment "correct the package name in FindValgrind.cmake (for find_package(... REQUIRED) to work)" 2. storage/tokudb/PerconaFT/cmake_modules/TokuMergeLibs.cmake I've commented out - LIST(REMOVE_DUPLICATES OSLIBS) + #LIST(REMOVE_DUPLICATES OSLIBS) with the comment   Libraries must be specified in the specific order,   REMOVE_DUPLICATES cannot be used, because it destroys this order.   (when OSLIBS contains "-lpthread -ljemalloc -lpthread", REMOVE_DUPLICATES   makes it "-lpthread -ljemalloc". But a thread library *must* be *after* jemalloc) 3. storage/tokudb/PerconaFT/cmake_modules/TokuSetupCTest.cmake     execute_process(       COMMAND which ${filename}       RESULT_VARIABLE res + ERROR_QUIET       OUTPUT_VARIABLE full_filename       OUTPUT_STRIP_TRAILING_WHITESPACE) with the comment "'which' might print errors to stderr, they are not important, shut them up"   execute_process(     COMMAND hostname     OUTPUT_VARIABLE fullhostname     OUTPUT_STRIP_TRAILING_WHITESPACE) - string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} ${fullhostname}) + string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} "${fullhostname}") "MDEV-5124 cmake failure when fullhostname is not resolved expand fullhostname inside the string, to have an empty string, not nothing, when fullhostname is not defined" - configure_file(CTestCustom.cmake . @ONLY) + configure_file(CTestCustom.cmake.in CTestCustom.cmake @ONLY) "don't configure_file into itself (with input=output)" also CTestCustom.cmake must be renamed to CTestCustom.cmake.in 4. storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake - if (NOT DEFINED LIBJEMALLOC) + if (CMAKE_PROJECT_NAME STREQUAL TokuDB) this code (forcing libjemalloc) should only be used when PerconaFT is compiled as an independent project. When it's inside the Percona Server, the top-level CMakeLists.txt makes these server-wide decisions, not individual engine. - list(APPEND xz_configure_opts CC=${CMAKE_C_COMPILER}) + list(APPEND xz_configure_opts "CC=${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}") "Fixed tokudb with ccache build failure." ExternalProject_Add(build_lzma     PREFIX xz     DOWNLOAD_COMMAND         cp -a "${XZ_ALL_FILES}" "<SOURCE_DIR>/"     CONFIGURE_COMMAND         "<SOURCE_DIR>/configure" ${xz_configure_opts}         "--prefix=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz" + "--libdir=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz/lib"     BUILD_COMMAND         ${SUBMAKE_COMMAND} -C src/liblzma     INSTALL_COMMAND         ${SUBMAKE_COMMAND} -C src/liblzma install ) That was needed on SuSE where libtool put the library in <...>/xz/lib64 and the code below (in the same cmake file) was not able to find it. 5. storage/tokudb/PerconaFT/ft/tests/CMakeLists.txt another one of - add_executable(${test} ${test}) + add_executable(${test} ${test}.cc) 6. storage/tokudb/PerconaFT/locktree/tests/CMakeLists.txt - add_executable(${base} ${base}) + add_executable(${base} ${base}.cc) 7. storage/tokudb/PerconaFT/portability/tests/CMakeLists.txt - add_executable(${test} ${test}) + add_executable(${test} ${test}.cc) 8. storage/tokudb/PerconaFT/src/CMakeLists.txt - target_link_libraries(${LIBTOKUDB} LINK_PUBLIC z) + target_link_libraries(${LIBTOKUDB} LINK_PUBLIC ${ZLIB_LIBRARY} ) tokudb should respect server-global zlib settings and link with bundled zlib, if user has selected that configuration 9. storage/tokudb/PerconaFT/src/tests/CMakeLists.txt - add_executable(test-5138.tdb test-5138) + add_executable(test-5138.tdb test-5138.cc) and - add_executable(${base}.tdb ${base}) + add_executable(${base}.tdb ${base}.cc) 10. storage/tokudb/PerconaFT/tools/CMakeLists.txt - add_executable(${tool} ${tool}) + add_executable(${tool} ${tool}.cc) and - install(TARGETS tokuftdump DESTINATION bin COMPONENT tokukv_tools) - install(TARGETS tokuft_logprint DESTINATION bin COMPONENT tokukv_tools) + install(TARGETS tokuftdump DESTINATION ${INSTALL_BINDIR} COMPONENT Server) + install(TARGETS tokuft_logprint DESTINATION ${INSTALL_BINDIR} COMPONENT Server) The DESTINATION should follow server-wide settings from install_layout.cmake. But you might not care about the correct COMPONENT here, if you don't use components at all in your cmake files. 11. storage/tokudb/PerconaFT/util/tests/CMakeLists.txt - add_executable(${test} ${test}) + add_executable(${test} ${test}.cc) === that's all I'll just put everything in one bug report :) 1. storage/tokudb/PerconaFT/cmake_modules/FindValgrind.cmake I've changed - find_package_handle_standard_args(VALGRIND DEFAULT_MSG + find_package_handle_standard_args(Valgrind DEFAULT_MSG with the comment "correct the package name in FindValgrind.cmake (for find_package(... REQUIRED) to work)" 2. storage/tokudb/PerconaFT/cmake_modules/TokuMergeLibs.cmake I've commented out - LIST(REMOVE_DUPLICATES OSLIBS) + #LIST(REMOVE_DUPLICATES OSLIBS) with the comment   Libraries must be specified in the specific order,   REMOVE_DUPLICATES cannot be used, because it destroys this order.   (when OSLIBS contains "-lpthread -ljemalloc -lpthread", REMOVE_DUPLICATES   makes it "-lpthread -ljemalloc". But a thread library *must* be *after* jemalloc) 3. storage/tokudb/PerconaFT/cmake_modules/TokuSetupCTest.cmake     execute_process(       COMMAND which ${filename}       RESULT_VARIABLE res + ERROR_QUIET       OUTPUT_VARIABLE full_filename       OUTPUT_STRIP_TRAILING_WHITESPACE) with the comment "'which' might print errors to stderr, they are not important, shut them up"   execute_process(     COMMAND hostname     OUTPUT_VARIABLE fullhostname     OUTPUT_STRIP_TRAILING_WHITESPACE) - string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} ${fullhostname}) + string(REGEX REPLACE "\\.tokutek\\.com$" "" ${out} "${fullhostname}") "MDEV-5124 cmake failure when fullhostname is not resolved expand fullhostname inside the string, to have an empty string, not nothing, when fullhostname is not defined" - configure_file(CTestCustom.cmake . @ONLY) + configure_file(CTestCustom.cmake.in CTestCustom.cmake @ONLY) "don't configure_file into itself (with input=output)" also CTestCustom.cmake must be renamed to CTestCustom.cmake.in 4. storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake - if (NOT DEFINED LIBJEMALLOC) + if (CMAKE_PROJECT_NAME STREQUAL TokuDB) this code (forcing libjemalloc) should only be used when PerconaFT is compiled as an independent project. When it's inside the Percona Server, the top-level CMakeLists.txt makes these server-wide decisions, not individual engine. - list(APPEND xz_configure_opts CC=${CMAKE_C_COMPILER}) + list(APPEND xz_configure_opts "CC=${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}") "Fixed tokudb with ccache build failure." ExternalProject_Add(build_lzma     PREFIX xz     DOWNLOAD_COMMAND         cp -a "${XZ_ALL_FILES}" "<SOURCE_DIR>/"     CONFIGURE_COMMAND         "<SOURCE_DIR>/configure" ${xz_configure_opts}         "--prefix=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz" + "--libdir=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/xz/lib"     BUILD_COMMAND         ${SUBMAKE_COMMAND} -C src/liblzma     INSTALL_COMMAND         ${SUBMAKE_COMMAND} -C src/liblzma install ) That was needed on SuSE where libtool put the library in <...>/xz/lib64 and the code below (in the same cmake file) was not able to find it. 5. storage/tokudb/PerconaFT/ft/tests/CMakeLists.txt another one of - add_executable(${test} ${test}) + add_executable(${test} ${test}.cc) 6. storage/tokudb/PerconaFT/locktree/tests/CMakeLists.txt - add_executable(${base} ${base}) + add_executable(${base} ${base}.cc) 7. storage/tokudb/PerconaFT/portability/tests/CMakeLists.txt - add_executable(${test} ${test}) + add_executable(${test} ${test}.cc) 8. storage/tokudb/PerconaFT/src/CMakeLists.txt - target_link_libraries(${LIBTOKUDB} LINK_PUBLIC z) + target_link_libraries(${LIBTOKUDB} LINK_PUBLIC ${ZLIB_LIBRARY} ) tokudb should respect server-global zlib settings and link with bundled zlib, if user has selected that configuration 9. storage/tokudb/PerconaFT/src/tests/CMakeLists.txt - add_executable(test-5138.tdb test-5138) + add_executable(test-5138.tdb test-5138.cc) and - add_executable(${base}.tdb ${base}) + add_executable(${base}.tdb ${base}.cc) 10. storage/tokudb/PerconaFT/tools/CMakeLists.txt - add_executable(${tool} ${tool}) + add_executable(${tool} ${tool}.cc) and - install(TARGETS tokuftdump DESTINATION bin COMPONENT tokukv_tools) - install(TARGETS tokuft_logprint DESTINATION bin COMPONENT tokukv_tools) + install(TARGETS tokuftdump DESTINATION ${INSTALL_BINDIR} COMPONENT Server) + install(TARGETS tokuft_logprint DESTINATION ${INSTALL_BINDIR} COMPONENT Server) The DESTINATION should follow server-wide settings from install_layout.cmake. But you might not care about the correct COMPONENT here, if you don't use components at all in your cmake files. 11. storage/tokudb/PerconaFT/util/tests/CMakeLists.txt - add_executable(${test} ${test}) + add_executable(${test} ${test}.cc) 12. storage/tokudb/PerconaFT/CMakeLists.txt cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR) this command automatically does cmake_policy(VERSION 2.8.8) which removes all cmake_policy() settings that were done in the root CMakeLists.txt. In particular cmake starts issuing warnings about policies CMP0022 and CMP0045. As a fix this line can be either removed or wrapped in "if (CMAKE_PROJECT_NAME STREQUAL TokuDB)" === that's all
2015-11-13 11:48:06 Tomislav Plavcic percona-server/5.6: status Triaged Fix Committed
2015-11-13 11:48:08 Tomislav Plavcic percona-server/5.6: assignee Tomislav Plavcic (tplavcic)
2015-11-13 11:48:44 Tomislav Plavcic percona-server/5.6: milestone 5.6.27-75.1
2015-11-18 11:14:45 Tomislav Plavcic percona-server/5.6: status Fix Committed Fix Released