[10/12] configure: Detect kcov support and introduce CONFIG_KCOV
diff mbox series

Message ID 1579214991-19602-11-git-send-email-aleksandar.markovic@rt-rk.com
State New
Headers show
Series
  • linux-user: Add support for fs, fd,and kcov ioctls
Related show

Commit Message

Aleksandar Markovic Jan. 16, 2020, 10:49 p.m. UTC
From: Aleksandar Markovic <amarkovic@wavecomp.com>

kcov is kernel code coverage tracing tool. It requires kernel 4.4+
compiled with certain kernel options.

This patch checks if kcov header "sys/kcov.h" is present on build
machine, and stores the result in variable CONFIG_KCOV, meant to
be used in linux-user code related to the support for three ioctls
that were introduced at the same time as the mentioned header
(their definition was a part of the first version of that header).

Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
 configure | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Laurent Vivier Jan. 22, 2020, 2:10 p.m. UTC | #1
Le 16/01/2020 à 23:49, Aleksandar Markovic a écrit :
> From: Aleksandar Markovic <amarkovic@wavecomp.com>
> 
> kcov is kernel code coverage tracing tool. It requires kernel 4.4+
> compiled with certain kernel options.
> 
> This patch checks if kcov header "sys/kcov.h" is present on build
> machine, and stores the result in variable CONFIG_KCOV, meant to
> be used in linux-user code related to the support for three ioctls
> that were introduced at the same time as the mentioned header
> (their definition was a part of the first version of that header).
> 
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> ---
>  configure | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/configure b/configure
> index 940bf9e..57e6eba 100755
> --- a/configure
> +++ b/configure
> @@ -4752,6 +4752,12 @@ if compile_prog "" "" ; then
>    syncfs=yes
>  fi
>  
> +# check for kcov support (kernel must be 4.4+, compiled with certain options)
> +kcov=no
> +if check_include sys/kcov.h ; then
> +    kcov=yes
> +fi
> +
>  # Check we have a new enough version of sphinx-build
>  has_sphinx_build() {
>      # This is a bit awkward but works: create a trivial document and
> @@ -6874,6 +6880,9 @@ fi
>  if test "$syncfs" = "yes" ; then
>    echo "CONFIG_SYNCFS=y" >> $config_host_mak
>  fi
> +if test "$kcov" = "yes" ; then
> +  echo "CONFIG_KCOV=y" >> $config_host_mak
> +fi
>  if test "$inotify" = "yes" ; then
>    echo "CONFIG_INOTIFY=y" >> $config_host_mak
>  fi
>

Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Laurent Vivier Jan. 22, 2020, 2:16 p.m. UTC | #2
Le 16/01/2020 à 23:49, Aleksandar Markovic a écrit :
> From: Aleksandar Markovic <amarkovic@wavecomp.com>
> 
> kcov is kernel code coverage tracing tool. It requires kernel 4.4+
> compiled with certain kernel options.
> 
> This patch checks if kcov header "sys/kcov.h" is present on build
> machine, and stores the result in variable CONFIG_KCOV, meant to
> be used in linux-user code related to the support for three ioctls
> that were introduced at the same time as the mentioned header
> (their definition was a part of the first version of that header).
> 
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> ---
>  configure | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/configure b/configure
> index 940bf9e..57e6eba 100755
> --- a/configure
> +++ b/configure
> @@ -4752,6 +4752,12 @@ if compile_prog "" "" ; then
>    syncfs=yes
>  fi
>  
> +# check for kcov support (kernel must be 4.4+, compiled with certain options)
> +kcov=no
> +if check_include sys/kcov.h ; then
> +    kcov=yes
> +fi
> +
>  # Check we have a new enough version of sphinx-build
>  has_sphinx_build() {
>      # This is a bit awkward but works: create a trivial document and
> @@ -6874,6 +6880,9 @@ fi
>  if test "$syncfs" = "yes" ; then
>    echo "CONFIG_SYNCFS=y" >> $config_host_mak
>  fi
> +if test "$kcov" = "yes" ; then
> +  echo "CONFIG_KCOV=y" >> $config_host_mak
> +fi
>  if test "$inotify" = "yes" ; then
>    echo "CONFIG_INOTIFY=y" >> $config_host_mak
>  fi
> 

Applied to my linux-user branch.

Thanks,
Laurent

Patch
diff mbox series

diff --git a/configure b/configure
index 940bf9e..57e6eba 100755
--- a/configure
+++ b/configure
@@ -4752,6 +4752,12 @@  if compile_prog "" "" ; then
   syncfs=yes
 fi
 
+# check for kcov support (kernel must be 4.4+, compiled with certain options)
+kcov=no
+if check_include sys/kcov.h ; then
+    kcov=yes
+fi
+
 # Check we have a new enough version of sphinx-build
 has_sphinx_build() {
     # This is a bit awkward but works: create a trivial document and
@@ -6874,6 +6880,9 @@  fi
 if test "$syncfs" = "yes" ; then
   echo "CONFIG_SYNCFS=y" >> $config_host_mak
 fi
+if test "$kcov" = "yes" ; then
+  echo "CONFIG_KCOV=y" >> $config_host_mak
+fi
 if test "$inotify" = "yes" ; then
   echo "CONFIG_INOTIFY=y" >> $config_host_mak
 fi