diff options
-rw-r--r-- | cmake/build_configurations/mysql_release.cmake | 10 | ||||
-rw-r--r-- | libmysqld/CMakeLists.txt | 3 | ||||
-rw-r--r-- | storage/xtradb/CMakeLists.txt | 16 |
3 files changed, 23 insertions, 6 deletions
diff --git a/cmake/build_configurations/mysql_release.cmake b/cmake/build_configurations/mysql_release.cmake index ee6d6b85004..53157b4e2c0 100644 --- a/cmake/build_configurations/mysql_release.cmake +++ b/cmake/build_configurations/mysql_release.cmake @@ -115,9 +115,9 @@ IF(UNIX) OPTION(WITH_LIBEDIT "" ON) ENDIF() - OPTION(WITH_PIC "" ON) # Why? IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") + IF(NOT IGNORE_AIO_CHECK) # Ensure aio is available on Linux (required by InnoDB) CHECK_INCLUDE_FILES(libaio.h HAVE_LIBAIO_H) @@ -133,6 +133,14 @@ IF(UNIX) If you really do not want it, pass -DIGNORE_AIO_CHECK to cmake. ") ENDIF() + + # Remove libaio dependency from mysqld + SET(XTRADB_PREFER_STATIC_LIBAIO 1) + + # Unfortunately, linking shared libmysqld with static aio + # does not work, unless we add also dynamic one. This also means + # libmysqld.so will depend on libaio.so + SET(LIBMYSQLD_SO_EXTRA_LIBS aio) ENDIF() # Enable fast mutexes on Linux diff --git a/libmysqld/CMakeLists.txt b/libmysqld/CMakeLists.txt index 483e0ca05fd..9fc6ccf7543 100644 --- a/libmysqld/CMakeLists.txt +++ b/libmysqld/CMakeLists.txt @@ -157,6 +157,9 @@ IF(NOT DISABLE_SHARED) # libmysqld SET_TARGET_PROPERTIES(libmysqld PROPERTIES CLEAN_DIRECT_OUTPUT 1) SET_TARGET_PROPERTIES(mysqlserver PROPERTIES CLEAN_DIRECT_OUTPUT 1) + IF(LIBMYSQLD_SO_EXTRA_LIBS) + TARGET_LINK_LIBRARIES(libmysqld ${LIBMYSQLD_SO_EXTRA_LIBS}) + ENDIF() ENDIF() ENDIF() diff --git a/storage/xtradb/CMakeLists.txt b/storage/xtradb/CMakeLists.txt index b55f31e08d1..044a259c65d 100644 --- a/storage/xtradb/CMakeLists.txt +++ b/storage/xtradb/CMakeLists.txt @@ -23,12 +23,18 @@ INCLUDE(CheckCSourceRuns) IF(UNIX) IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") CHECK_INCLUDE_FILES (libaio.h HAVE_LIBAIO_H) - CHECK_LIBRARY_EXISTS(aio io_queue_init "" HAVE_LIBAIO) - ADD_DEFINITIONS("-DUNIV_LINUX -D_GNU_SOURCE=1") - IF(HAVE_LIBAIO_H AND HAVE_LIBAIO) - ADD_DEFINITIONS(-DLINUX_NATIVE_AIO=1) - LINK_LIBRARIES(aio) + IF (XTRADB_PREFER_STATIC_LIBAIO) + SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) + ENDIF() + FIND_LIBRARY(AIO_LIBRARY aio) + IF(AIO_LIBRARY) + CHECK_LIBRARY_EXISTS(${AIO_LIBRARY} io_queue_init "" HAVE_LIBAIO) + IF(HAVE_LIBAIO AND HAVE_LIBAIO_H) + ADD_DEFINITIONS(-DLINUX_NATIVE_AIO=1) + ENDIF() + LINK_LIBRARIES(${AIO_LIBRARY}) ENDIF() + ADD_DEFINITIONS("-DUNIV_LINUX -D_GNU_SOURCE=1") ELSEIF(CMAKE_SYSTEM_NAME MATCHES "HP*") ADD_DEFINITIONS("-DUNIV_HPUX -DUNIV_MUST_NOT_INLINE") ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "AIX") |