Percona-Server-5.6 cmake compiler always check RocksDB even if we pass -DWITHOUT_ROCKSDB=1 argument
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Percona Server moved to https://jira.percona.com/projects/PS | Status tracked in 5.7 | |||||
5.5 |
Invalid
|
Undecided
|
Unassigned | |||
5.6 |
Fix Released
|
Medium
|
George Ormond Lorch III | |||
5.7 |
Fix Released
|
Medium
|
George Ormond Lorch III |
Bug Description
Percona-Server-5.6 cmake compiler always check RocksDB even if we pass -DWITHOUT_ROCKSDB=1 argument
How to repeat:
git clone https:/
cmake ../percona-server -DCMAKE_
Compilation log:
$ cmake ../percona-server -DCMAKE_
-- Running cmake version 2.8.12.2
-- Found Git: /usr/bin/git (found version "1.7.1")
-- The C compiler identification is GNU 4.4.7
-- The CXX compiler identification is GNU 4.4.7
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
[..]
-- Performing Test HAVE_WVLA
-- Performing Test HAVE_WVLA - Success
CMake Error at storage/
Missing Makefile in rocksdb directory. Try "git submodule update".
-- Not building with MyRocks storage engine, you must specify -DWITH_ROCKSDB=1 to cmake in order to build with MyRocks.
-- Looking for sched_getcpu
-- Looking for sched_getcpu - found
-- Performing Test HAVE_IB_
-- Performing Test HAVE_IB_
[..]
See also "/home/
See also "/home/
$
summary: |
Percona-Server-5.6 cmake compiler always check RocksDB even if we pass - -DWITH_ROCKSDB=1 argument + -DWITHOUT_ROCKSDB=1 argument |
description: | updated |
description: | updated |
description: | updated |
tags: | added: pkg regression |
tags: | added: myrocks |
First, when building PS on any platform, one should _always_ either clone with --recursive option or do git submodule init && git submodule update after the clone.
Next, this is a simple issue in the rocksdb CMakeLists.txt where it shouldn't check for the existence of the lower rocksdb CMakeLists.txt before it checks if WITH_ROCKSDB is defined:
3 IF (NOT EXISTS "${CMAKE_ CURRENT_ SOURCE_ DIR}/rocksdb/ Makefile" )
4 MESSAGE(SEND_ERROR "Missing Makefile in rocksdb directory. Try \"git submodule update\".")
5 ENDIF()
6
7 IF (NOT WITH_ROCKSDB)
8 MESSAGE(STATUS "Not building with MyRocks storage engine, you must specify -DWITH_ROCKSDB=1 to cmake in order to build with MyRocks.")
9 RETURN()
10 ELSE ()
11 MESSAGE(STATUS "Building with MyRocks storage engine")
12 ENDIF ()
These should probably be swapped.