[PATCH 1/3] build: Check for madvise syscall

Vladimir Davydov vdavydov.dev at gmail.com
Mon May 6 13:25:14 MSK 2019


On Wed, May 01, 2019 at 06:50:04PM +0300, Cyrill Gorcunov wrote:
> Need to check if madvise is present in the system

I don't think there's much point in splitting this change in three
patches. Please squash. OTOH it'd be nice to see how this API is
intended to be used within Tarantool. Could you please submit the
patch utilizing this feature in the same series?

> 
> Part of #3509

There's no issue 3509 in tarantool/small repository. Please paste the
full link instead - GitHub web interface knows how to show them.

> ---
> https://github.com/tarantool/tarantool/issues/3509
> 
>  CMakeLists.txt       | 11 +++++++++++
>  small/config.h.cmake |  9 +++++++++
>  2 files changed, 20 insertions(+)
>  create mode 100644 small/config.h.cmake
> 
> diff --git a/CMakeLists.txt b/CMakeLists.txt
> index ad27423..97d25bc 100644
> --- a/CMakeLists.txt
> +++ b/CMakeLists.txt
> @@ -1,6 +1,8 @@
>  project(small C CXX)
>  cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
>  
> +include(CheckFunctionExists)
> +
>  if(NOT CMAKE_BUILD_TYPE)
>      set(CMAKE_BUILD_TYPE Debug)
>  endif()
> @@ -15,10 +17,19 @@ endif()
>  # Enable GNU glibc extentions.
>  add_definitions("-D_GNU_SOURCE")
>  
> +check_function_exists(madvise TARANTOOL_SMALL_HAS_MADVISE)

I think we'd better check that MADV_DONTDUMP is available with the aid
of check_symbol_exists.

> +
> +configure_file(
> +    "small/config.h.cmake"
> +    "small/config.h"
> +    )
> +message (STATUS "")
> +
>  # Valgrind
>  include_directories(third_party)
>  
>  set(lib_headers
> +    small/config.h
>      small/ibuf.h
>      small/lf_lifo.h
>      small/lifo.h
> diff --git a/small/config.h.cmake b/small/config.h.cmake
> new file mode 100644
> index 0000000..1c9db10
> --- /dev/null
> +++ b/small/config.h.cmake
> @@ -0,0 +1,9 @@
> +#ifndef TARANTOOL_SMALL_CONFIG_H_INCLUDED
> +#define TARANTOOL_SMALL_CONFIG_H_INCLUDED
> +
> +/*
> + * Defined if this platform has madvise(..).
> + */
> + #cmakedefine TARANTOOL_SMALL_HAS_MADVISE 1
> +
> +#endif /* TARANTOOL_SMALL_CONFIG_H_INCLUDED */



More information about the Tarantool-patches mailing list