toolchain/toolchain-external: fix call to check_kernel_headers_version
authorThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sat, 21 Mar 2020 13:52:18 +0000 (14:52 +0100)
committerYann E. MORIN <yann.morin.1998@free.fr>
Sat, 21 Mar 2020 14:39:24 +0000 (15:39 +0100)
commit96f8d0bb4605d119d9c52b22e0032935b1fe8a29
treed5ea1909cb48f120253915f1d8afcbdf5c496579
parent092b112f4814f8da0b788a7b982065a92a679482
toolchain/toolchain-external: fix call to check_kernel_headers_version

The external toolchain configure step calls the
check_kernel_headers_version make function to compare the kernel
headers version declared in the configuration with the actual kernel
headers of the toolchain.

This function takes 4 arguments, but due to a missing comma what
should be the first two arguments are both passed into the first
argument. Due to this, when check_kernel_headers_version does:

if ! support/scripts/check-kernel-headers.sh $(1) $(2) $(3) \
$(if $(BR2_TOOLCHAIN_HEADERS_LATEST),$(4),strict); \

Then:

  $(1) contains "$(BUILD_DIR) $$(call toolchain_find_sysroot,$$(TOOLCHAIN_EXTERNAL_CC))"
  $(2) contains "$$(call qstrip,$$(BR2_TOOLCHAIN_HEADERS_AT_LEAST))"
  $(3) contains "$$(if $$(BR2_TOOLCHAIN_EXTERNAL_CUSTOM),loose,strict))"

So from the point of view of check-kernel-headers.sh, it already has
four arguments, and therefore the additional argument passed by:

   $(if $(BR2_TOOLCHAIN_HEADERS_LATEST),$(4),strict); \

is ignored, defeating the $(BR2_TOOLCHAIN_HEADERS_LATEST) test.

The practical consequence is that a toolchain that has 5.4 kernel
headers but declared as using 5.3 kernel headers does not abort the
build, because the check is considered "loose" while it should be
"strict".

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
toolchain/toolchain-external/pkg-toolchain-external.mk