linux install.tmpl: added CONFIG_HAVE_OBJTOOL in OR for objtool

Message ID 4uib2il4q62q.q_EMhEP7Ci2DAvn54u8ALw2@16F0H.trk.elasticemail.com
State Accepted, archived
Headers show
Series linux install.tmpl: added CONFIG_HAVE_OBJTOOL in OR for objtool | expand

Commit Message

Roberto A. Foglietta Nov. 3, 2022, 3:55 p.m. UTC
From: "Roberto A. Foglietta" <roberto.foglietta@gmail.com>

linux install.tmpl: added OR with CONFIG_HAVE_OBJTOOL for objtools
a fix for newer kernels (since 5.19 for sure) to include objtool

The newer kernels (e.g. v5.19) when compiled and packaged by an ISAR
do not include the objectool anymore in linux headears package. This
obviously breaks any activity which expects to use that binary
executable.

Signed-off-by: Roberto A. Foglietta <roberto.foglietta@gmail.com>
---
 meta/recipes-kernel/linux/files/debian/isar/install.tmpl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Henning Schild Nov. 7, 2022, 8:02 a.m. UTC | #1
Am Thu, 03 Nov 2022 15:55:19 +0000
schrieb roberto.foglietta@gmail.com:

> From: "Roberto A. Foglietta" <roberto.foglietta@gmail.com>
> 
> linux install.tmpl: added OR with CONFIG_HAVE_OBJTOOL for objtools
> a fix for newer kernels (since 5.19 for sure) to include objtool
> 
> The newer kernels (e.g. v5.19) when compiled and packaged by an ISAR
> do not include the objectool anymore in linux headears package. This
> obviously breaks any activity which expects to use that binary
> executable.
> 
> Signed-off-by: Roberto A. Foglietta <roberto.foglietta@gmail.com>
> ---
>  meta/recipes-kernel/linux/files/debian/isar/install.tmpl | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meta/recipes-kernel/linux/files/debian/isar/install.tmpl
> b/meta/recipes-kernel/linux/files/debian/isar/install.tmpl index
> 0a8645d..8a604e4 100644 ---
> a/meta/recipes-kernel/linux/files/debian/isar/install.tmpl +++
> b/meta/recipes-kernel/linux/files/debian/isar/install.tmpl @@ -177,7
> +177,7 @@ kernel_headers() { echo Module.symvers >> ${obj_hdr_files}
>      fi
>      (cd ${O}; find arch/${ARCH}/include include scripts -type f)
> >>${obj_hdr_files}
> -    if [ -n "${CONFIG_STACK_VALIDATION}" ]; then
> +    if [ -n "${CONFIG_STACK_VALIDATION}" -o -n
> "${CONFIG_HAVE_OBJTOOL}" ]; 

!x || !y is the same as ! (x && y)

i would find the latter more readable

Henning

> then (cd ${O}; find tools/objtool -type f
> -executable) >>${obj_hdr_files} fi
>      if [ -n "${CONFIG_GCC_PLUGINS}" ]; then
Roberto A. Foglietta Nov. 7, 2022, 9:46 a.m. UTC | #2
On Mon, 7 Nov 2022 at 09:02, Henning Schild <henning.schild@siemens.com> wrote:
>
> Am Thu, 03 Nov 2022 15:55:19 +0000
> schrieb roberto.foglietta@gmail.com:

> > -    if [ -n "${CONFIG_STACK_VALIDATION}" ]; then
> > +    if [ -n "${CONFIG_STACK_VALIDATION}" -o -n
> > "${CONFIG_HAVE_OBJTOOL}" ];
>
> !x || !y is the same as ! (x && y)
>
> i would find the latter more readable
>

Dear Henning,

first of all, thanks for your feedback. Considering man test:

    -n STRINGthe length of STRING is nonzero

it should be read as (X OR Y). Instead, using AND would be:

     if ! test -z "${x}" -a -z "${y}"; then

For this reason, I think that the patch is correct.

Best regards, R-
Anton Mikanovich Nov. 17, 2022, 8:30 a.m. UTC | #3
03.11.2022 18:55, roberto.foglietta@gmail.com wrote:
> From: "Roberto A. Foglietta" <roberto.foglietta@gmail.com>
>
> linux install.tmpl: added OR with CONFIG_HAVE_OBJTOOL for objtools
> a fix for newer kernels (since 5.19 for sure) to include objtool
>
> The newer kernels (e.g. v5.19) when compiled and packaged by an ISAR
> do not include the objectool anymore in linux headears package. This
> obviously breaks any activity which expects to use that binary
> executable.
>
> Signed-off-by: Roberto A. Foglietta <roberto.foglietta@gmail.com>

Applied to next, thanks.
Roberto A. Foglietta Nov. 17, 2022, 8:28 p.m. UTC | #4
On Thu, 17 Nov 2022 at 09:30, Anton Mikanovich <amikan@ilbers.de> wrote:
>
> 03.11.2022 18:55, roberto.foglietta@gmail.com wrote:
> > From: "Roberto A. Foglietta" <roberto.foglietta@gmail.com>
> >
> > linux install.tmpl: added OR with CONFIG_HAVE_OBJTOOL for objtools
> > a fix for newer kernels (since 5.19 for sure) to include objtool
> >
> > The newer kernels (e.g. v5.19) when compiled and packaged by an ISAR
> > do not include the objectool anymore in linux headears package. This
> > obviously breaks any activity which expects to use that binary
> > executable.
> >
> > Signed-off-by: Roberto A. Foglietta <roberto.foglietta@gmail.com>
>
> Applied to next, thanks.
>

Hi Anton,

 I have integrated the isar next new HEAD into my project and tested
it against linux 5.10.150 (older) and 5.19.17 (newer) and both
linux-headers correctly includes objtool/objtool

$ for i in $(sudo find build -name linux-headers\*.deb); do dpkg -c $i
| grep -i objtool/objtool && echo $i; done

-rwxr-xr-x root/root    147464 2022-11-17 20:25
./usr/src/linux-headers-5.10.150/tools/objtool/objtool
build/tmp/work/debian-bullseye-amd64/linux-raidtest/5.19.17-r0/isar-apt/debian-bullseye-amd64/apt/debian-bullseye/pool/main/l/linux-raidtest/linux-headers-raidtest_5.10.150+r0_amd64.deb
-rwxr-xr-x root/root    180232 2022-11-17 20:58
./usr/src/linux-headers-5.19.17/tools/objtool/objtool
build/tmp/work/debian-bullseye-amd64/linux-raidtest/5.19.17-r0/linux-headers-raidtest_5.19.17+r0_amd64.deb
-rwxr-xr-x root/root    180232 2022-11-17 20:58
./usr/src/linux-headers-5.19.17/tools/objtool/objtool
build/tmp/deploy/isar-apt/debian-bullseye-amd64/apt/debian-bullseye/pool/main/l/linux-raidtest/linux-headers-raidtest_5.19.17+r0_amd64.deb

Best regards, R-

Patch

diff --git a/meta/recipes-kernel/linux/files/debian/isar/install.tmpl b/meta/recipes-kernel/linux/files/debian/isar/install.tmpl
index 0a8645d..8a604e4 100644
--- a/meta/recipes-kernel/linux/files/debian/isar/install.tmpl
+++ b/meta/recipes-kernel/linux/files/debian/isar/install.tmpl
@@ -177,7 +177,7 @@  kernel_headers() {
         echo Module.symvers >> ${obj_hdr_files}
     fi
     (cd ${O}; find arch/${ARCH}/include include scripts -type f) >>${obj_hdr_files}
-    if [ -n "${CONFIG_STACK_VALIDATION}" ]; then
+    if [ -n "${CONFIG_STACK_VALIDATION}" -o -n "${CONFIG_HAVE_OBJTOOL}" ]; then
         (cd ${O}; find tools/objtool -type f -executable) >>${obj_hdr_files}
     fi
     if [ -n "${CONFIG_GCC_PLUGINS}" ]; then