[Buildroot] [PATCH] support/scripts/check-kernel-headers.sh: do not print error for loose checks

Yann E. MORIN yann.morin.1998 at free.fr
Sat Mar 21 14:48:59 UTC 2020


Thomas, All,

On 2020-03-21 14:52 +0100, Thomas Petazzoni spake thusly:
> The C program inside check-kernel-headers.sh has two checking mode: a
> strict and a loose one.
> 
> In strict mode, we want the kernel headers version declared by the
> user to match exactly the one of the toolchain.
> 
> In loose mode, we want the kernel headers version of the toolchain to
> be greater than or equal to the one declared by the user: this is used
> when we have a toolchain that has newer headers than the latest
> version known by Buildroot.
> 
> However, in loose mode, we continue to show the "Incorrect kernel
> headers version" message, even though we then return a zero error
> code. This is very confusing: you see an error displayed on the
> terminal, but the build goes on.
> 
> We fix that by first doing the loose check first, and returning 0 if
> it succeeds. And then we move on with the strict check where we want
> the version to be identical.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>

WhenVincent and I worked on this topic, I thought it would be better to
have the information about the version mismatch.

But I agree that the wording is confusing at best, so I applied to
master, thanks.

Regards,
Yann E. MORIN.

> ---
>  support/scripts/check-kernel-headers.sh | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/support/scripts/check-kernel-headers.sh b/support/scripts/check-kernel-headers.sh
> index 841df98b64..4e6dce5487 100755
> --- a/support/scripts/check-kernel-headers.sh
> +++ b/support/scripts/check-kernel-headers.sh
> @@ -49,18 +49,20 @@ ${HOSTCC} -imacros "${SYSROOT}/usr/include/linux/version.h" \
>  int main(int argc __attribute__((unused)),
>           char** argv __attribute__((unused)))
>  {
> -    int ret = 0;
>      int l = LINUX_VERSION_CODE & ~0xFF;
>      int h = KERNEL_VERSION(${HDR_M},${HDR_m},0);
>  
> +    if ((l >= h) && !strcmp("${CHECK}", "loose"))
> +        return 0;
> +
>      if (l != h) {
>          printf("Incorrect selection of kernel headers: ");
>          printf("expected %d.%d.x, got %d.%d.x\n", ${HDR_M}, ${HDR_m},
>                 ((LINUX_VERSION_CODE>>16) & 0xFF),
>                 ((LINUX_VERSION_CODE>>8) & 0xFF));
> -        ret = ((l >= h) && !strcmp("${CHECK}", "loose")) ? 0 : 1;
> +        return 1;
>      }
> -    return ret;
> +    return 0;
>  }
>  _EOF_
>  
> -- 
> 2.25.1
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'


More information about the buildroot mailing list