linux: Allow extra make arguments

Message ID 20240522120220.857796-1-amikan@ilbers.de
State Superseded, archived
Headers show
Series linux: Allow extra make arguments | expand

Commit Message

Anton Mikanovich May 22, 2024, 12:02 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.

Signed-off-by: Ilia Skochilov <iskochilov@ilbers.de>
Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
---
 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

Jan Kiszka May 22, 2024, 12:08 p.m. UTC | #1
On 22.05.24 14:02, 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.

Which use cases do you have in mind? Pleaes always describe the reasons
for a patch.

Jan

> 
> Signed-off-by: Ilia Skochilov <iskochilov@ilbers.de>
> Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
> ---
>  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]}"
>
Anton Mikanovich May 22, 2024, 12:22 p.m. UTC | #2
22/05/2024 15:08, Jan Kiszka wrote:
> On 22.05.24 14:02, 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.
> Which use cases do you have in mind? Please always describe the reasons
> for a patch.
>
> Jan

The real usage of this improvement will be shared soon in 
stm32mp157d-dk1 board
support patchset where LOADADDR=0xC2000040 is applied.
Jan Kiszka May 22, 2024, 2:10 p.m. UTC | #3
On 22.05.24 14:22, Anton Mikanovich wrote:
> 22/05/2024 15:08, Jan Kiszka wrote:
>> On 22.05.24 14:02, 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.
>> Which use cases do you have in mind? Please always describe the reasons
>> for a patch.
>>
>> Jan
> 
> The real usage of this improvement will be shared soon in
> stm32mp157d-dk1 board
> support patchset where LOADADDR=0xC2000040 is applied.
> 

Uh, that's legacy stuff...

OK, please clarify this use case. Nowadays, you describe things in the
.config, and that's it.

Jan

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]}"