diff mbox series

[v5,18/20] configure: Detect kcov support and introduce CONFIG_KCOV

Message ID 1578947683-21011-19-git-send-email-aleksandar.markovic@rt-rk.com (mailing list archive)
State New, archived
Headers show
Series linux-user: Misc patches for 5.0 | expand

Commit Message

Aleksandar Markovic Jan. 13, 2020, 8:34 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. Its interface consists of
three ioctls.

This patch checks if kcov support 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 above mentioned ioctls.

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

Comments

Laurent Vivier Jan. 14, 2020, 2:48 p.m. UTC | #1
Le 13/01/2020 à 21:34, 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. Its interface consists of
> three ioctls.
> 
> This patch checks if kcov support 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 above mentioned ioctls.
> 
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> ---
>  configure | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
> 
> diff --git a/configure b/configure
> index 940bf9e..dbdba8f 100755
> --- a/configure
> +++ b/configure
> @@ -4752,6 +4752,24 @@ if compile_prog "" "" ; then
>    syncfs=yes
>  fi
>  
> +# check for kcov support (kernel must be 4.4+, compiled with certain options)
> +kcov=no
> +cat > $TMPC << EOF
> +#include <sys/kcov.h>
> +
> +int main(void)
> +{
> +    ioctl(-1, KCOV_ENABLE, NULL);
> +    ioctl(-1, KCOV_DISABLE, NULL);
> +    ioctl(-1, KCOV_INIT_TRACE, NULL);
> +
> +    return 0;
> +}
> +EOF
> +if compile_prog "" "" ; then
> +  kcov=yes
> +fi

Perhaps a 'check_include sys/kcov.h' is enough?

All these defines are present since the first release of the file.

Thanks,
Laurent
diff mbox series

Patch

diff --git a/configure b/configure
index 940bf9e..dbdba8f 100755
--- a/configure
+++ b/configure
@@ -4752,6 +4752,24 @@  if compile_prog "" "" ; then
   syncfs=yes
 fi
 
+# check for kcov support (kernel must be 4.4+, compiled with certain options)
+kcov=no
+cat > $TMPC << EOF
+#include <sys/kcov.h>
+
+int main(void)
+{
+    ioctl(-1, KCOV_ENABLE, NULL);
+    ioctl(-1, KCOV_DISABLE, NULL);
+    ioctl(-1, KCOV_INIT_TRACE, NULL);
+
+    return 0;
+}
+EOF
+if compile_prog "" "" ; 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 +6892,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