[v2] linux: Allow extra make arguments

Message ID 20240522143014.862964-1-amikan@ilbers.de
State Accepted, archived
Headers show
Series [v2] linux: Allow extra make arguments | expand

Commit Message

Anton Mikanovich May 22, 2024, 2:30 p.m. UTC
Add a new variable into TEMPLATE_VARS and the command line -
KERNEL_EXTRA_BUILDARGS which allows to pass additional arguments for
kernel building (e.g., LOADADDR=0xC2000040 for stm32mp15x).

Signed-off-by: Ilia Skochilov <iskochilov@ilbers.de>
Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
---
Changes since v1:
 - Added usecase in commit message

 meta/recipes-kernel/linux/files/debian/isar/build.tmpl | 4 ++--
 meta/recipes-kernel/linux/linux-custom.inc             | 4 ++++
 2 files changed, 6 insertions(+), 2 deletions(-)

Comments

Uladzimir Bely May 30, 2024, 5:52 a.m. UTC | #1
On Wed, 2024-05-22 at 17:30 +0300, Anton Mikanovich wrote:
> Add a new variable into TEMPLATE_VARS and the command line -
> KERNEL_EXTRA_BUILDARGS which allows to pass additional arguments for
> kernel building (e.g., LOADADDR=0xC2000040 for stm32mp15x).
> 
> Signed-off-by: Ilia Skochilov <iskochilov@ilbers.de>
> Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
> ---
> Changes since v1:
>  - Added usecase in commit message
> 
>  meta/recipes-kernel/linux/files/debian/isar/build.tmpl | 4 ++--
>  meta/recipes-kernel/linux/linux-custom.inc             | 4 ++++
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/recipes-kernel/linux/files/debian/isar/build.tmpl
> b/meta/recipes-kernel/linux/files/debian/isar/build.tmpl
> index 81a6ba8a..bafc5ca4 100644
> --- a/meta/recipes-kernel/linux/files/debian/isar/build.tmpl
> +++ b/meta/recipes-kernel/linux/files/debian/isar/build.tmpl
> @@ -22,9 +22,9 @@ do_build() {
>      sed -i "s/@KR@/${KR}/g" ${S}/debian/control ${S}/debian/linux-
> image-${KERNEL_NAME_PROVIDED}.*
>  
>      if echo "${DEB_BUILD_PROFILES}" | grep -q "kernel"; then # Build
> kernel scripts and tools
> -        ${MAKE} O=${KERNEL_BUILD_DIR} ${PARALLEL_MAKE}
> KCFLAGS="${KCFLAGS}" KAFLAGS="${KAFLAGS}"
> +        ${MAKE} O=${KERNEL_BUILD_DIR} ${PARALLEL_MAKE}
> ${KERNEL_EXTRA_BUILDARGS} KCFLAGS="${KCFLAGS}" KAFLAGS="${KAFLAGS}"
>      elif echo "${DEB_BUILD_PROFILES}" | grep -q "kbuild"; then #
> Build kernel scripts and tools
> -        ${MAKE} O=${KERNEL_BUILD_DIR} ${PARALLEL_MAKE}
> KCFLAGS="${KCFLAGS}" KAFLAGS="${KAFLAGS}" scripts
> +        ${MAKE} O=${KERNEL_BUILD_DIR} ${PARALLEL_MAKE}
> ${KERNEL_EXTRA_BUILDARGS} KCFLAGS="${KCFLAGS}" KAFLAGS="${KAFLAGS}"
> scripts
>          if grep -q -E
> "CONFIG_STACK_VALIDATION=y|CONFIG_HAVE_OBJTOOL=y"
> ${KERNEL_BUILD_DIR}/.config && [ -d "tools/objtool" ]; then
>              ${MAKE} O=${KERNEL_BUILD_DIR} ${PARALLEL_MAKE}
> KCFLAGS="${KCFLAGS}" KAFLAGS="${KAFLAGS}" tools/objtool || true
>          fi
> diff --git a/meta/recipes-kernel/linux/linux-custom.inc
> b/meta/recipes-kernel/linux/linux-custom.inc
> index 0d222332..48efad03 100644
> --- a/meta/recipes-kernel/linux/linux-custom.inc
> +++ b/meta/recipes-kernel/linux/linux-custom.inc
> @@ -82,6 +82,7 @@ TEMPLATE_VARS += "                \
>      KCFLAGS                       \
>      KAFLAGS                       \
>      DISTRIBUTOR                   \
> +    KERNEL_EXTRA_BUILDARGS        \
>  "
>  
>  inherit dpkg
> @@ -92,6 +93,9 @@ inherit kbuildtarget
>  KCFLAGS ?= "-fdebug-prefix-map=${CURDIR}=."
>  KAFLAGS ?= "-fdebug-prefix-map=${CURDIR}=."
>  
> +# Add extra arguments to the kernel build
> +KERNEL_EXTRA_BUILDARGS ??= ""
> +
>  # Derive name of the kernel packages from the name of this recipe
>  KERNEL_NAME_PROVIDED ?= "${@ d.getVar('BPN').partition('linux-
> ')[2]}"
>  
> -- 
> 2.34.1
> 

Applied to next.

Patch

diff --git a/meta/recipes-kernel/linux/files/debian/isar/build.tmpl b/meta/recipes-kernel/linux/files/debian/isar/build.tmpl
index 81a6ba8a..bafc5ca4 100644
--- a/meta/recipes-kernel/linux/files/debian/isar/build.tmpl
+++ b/meta/recipes-kernel/linux/files/debian/isar/build.tmpl
@@ -22,9 +22,9 @@  do_build() {
     sed -i "s/@KR@/${KR}/g" ${S}/debian/control ${S}/debian/linux-image-${KERNEL_NAME_PROVIDED}.*
 
     if echo "${DEB_BUILD_PROFILES}" | grep -q "kernel"; then # Build kernel scripts and tools
-        ${MAKE} O=${KERNEL_BUILD_DIR} ${PARALLEL_MAKE} KCFLAGS="${KCFLAGS}" KAFLAGS="${KAFLAGS}"
+        ${MAKE} O=${KERNEL_BUILD_DIR} ${PARALLEL_MAKE} ${KERNEL_EXTRA_BUILDARGS} KCFLAGS="${KCFLAGS}" KAFLAGS="${KAFLAGS}"
     elif echo "${DEB_BUILD_PROFILES}" | grep -q "kbuild"; then # Build kernel scripts and tools
-        ${MAKE} O=${KERNEL_BUILD_DIR} ${PARALLEL_MAKE} KCFLAGS="${KCFLAGS}" KAFLAGS="${KAFLAGS}" scripts
+        ${MAKE} O=${KERNEL_BUILD_DIR} ${PARALLEL_MAKE} ${KERNEL_EXTRA_BUILDARGS} KCFLAGS="${KCFLAGS}" KAFLAGS="${KAFLAGS}" scripts
         if grep -q -E "CONFIG_STACK_VALIDATION=y|CONFIG_HAVE_OBJTOOL=y" ${KERNEL_BUILD_DIR}/.config && [ -d "tools/objtool" ]; then
             ${MAKE} O=${KERNEL_BUILD_DIR} ${PARALLEL_MAKE} KCFLAGS="${KCFLAGS}" KAFLAGS="${KAFLAGS}" tools/objtool || true
         fi
diff --git a/meta/recipes-kernel/linux/linux-custom.inc b/meta/recipes-kernel/linux/linux-custom.inc
index 0d222332..48efad03 100644
--- a/meta/recipes-kernel/linux/linux-custom.inc
+++ b/meta/recipes-kernel/linux/linux-custom.inc
@@ -82,6 +82,7 @@  TEMPLATE_VARS += "                \
     KCFLAGS                       \
     KAFLAGS                       \
     DISTRIBUTOR                   \
+    KERNEL_EXTRA_BUILDARGS        \
 "
 
 inherit dpkg
@@ -92,6 +93,9 @@  inherit kbuildtarget
 KCFLAGS ?= "-fdebug-prefix-map=${CURDIR}=."
 KAFLAGS ?= "-fdebug-prefix-map=${CURDIR}=."
 
+# Add extra arguments to the kernel build
+KERNEL_EXTRA_BUILDARGS ??= ""
+
 # Derive name of the kernel packages from the name of this recipe
 KERNEL_NAME_PROVIDED ?= "${@ d.getVar('BPN').partition('linux-')[2]}"