Re: [OE-core] [PATCH] kernel.bbclass: Use strip utility used for kernel build in do_package
This doesn't work well with ccache.bbclass when KERNEL_STRIP is prefixed with ccache as: KERNEL_STRIP="ccache aarch64-oe-linux-strip " do_package then fails with: ERROR: Fatal errors occurred in subprocesses: [Errno 2] No such file or directory: 'ccache x86_64-oe-linux-strip': Traceback (most recent call last): File "TOPDIR/oe-core/meta/lib/oe/utils.py", line 288, in run ret = self._target(*self._args, **self._kwargs) ^ File "TOPDIR/oe-core/meta/lib/oe/package.py", line 66, in runstrip output = subprocess.check_output(stripcmd, stderr=subprocess.STDOUT) ^^^ File "/usr/lib/python3.11/subprocess.py", line 466, in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, ^ File "/usr/lib/python3.11/subprocess.py", line 548, in run with Popen(*popenargs, **kwargs) as process: ^^^ File "/usr/lib/python3.11/subprocess.py", line 1026, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "/usr/lib/python3.11/subprocess.py", line 1950, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] No such file or directory: 'ccache x86_64-oe-linux-strip' On Wed, Oct 25, 2023 at 12:07 AM Khem Raj wrote: > os.environ does not pass this down to runstrip() function and in > strip_execs() its using STRIP bitbake variable to find the strip utility > to use. Since there might be a trailing whitespace in KERNEL_STRIP > remove that otherwise python is not able to launch it. > e.g. > > FileNotFoundError: [Errno 2] No such file or directory: > 'riscv64-yoe-linux-strip ' > > This is more evident when STRIP and KERNEL_STRIP are different utilities > e.g. when using clang as default toolchain but using gcc+binutils only for > kernel build. > > Signed-off-by: Khem Raj > Cc: Bruce Ashfield > --- > meta/classes-recipe/kernel.bbclass | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/meta/classes-recipe/kernel.bbclass > b/meta/classes-recipe/kernel.bbclass > index 2ec9ea2091e..16b85dbca48 100644 > --- a/meta/classes-recipe/kernel.bbclass > +++ b/meta/classes-recipe/kernel.bbclass > @@ -336,7 +336,7 @@ kernel_do_transform_bundled_initramfs() { > do_transform_bundled_initramfs[dirs] = "${B}" > > python do_package:prepend () { > -os.environ['STRIP'] = d.getVar('KERNEL_STRIP') > +d.setVar('STRIP', d.getVar('KERNEL_STRIP').strip()) > } > > python do_devshell:prepend () { > -- > 2.42.0 > > > > > -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#189810): https://lists.openembedded.org/g/openembedded-core/message/189810 Mute This Topic: https://lists.openembedded.org/mt/102167569/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH] kernel.bbclass: Use strip utility used for kernel build in do_package
On Tue, 2023-10-24 at 19:17 -0400, Bruce Ashfield wrote: > On Tue, Oct 24, 2023 at 6:07 PM Khem Raj wrote: > > > > os.environ does not pass this down to runstrip() function and in > > strip_execs() its using STRIP bitbake variable to find the strip utility > > to use. Since there might be a trailing whitespace in KERNEL_STRIP > > remove that otherwise python is not able to launch it. > > e.g. > > > > FileNotFoundError: [Errno 2] No such file or directory: > > 'riscv64-yoe-linux-strip ' > > > > This is more evident when STRIP and KERNEL_STRIP are different utilities > > e.g. when using clang as default toolchain but using gcc+binutils only for > > kernel build. > > > > Signed-off-by: Khem Raj > > Cc: Bruce Ashfield > > --- > > meta/classes-recipe/kernel.bbclass | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/meta/classes-recipe/kernel.bbclass > > b/meta/classes-recipe/kernel.bbclass > > index 2ec9ea2091e..16b85dbca48 100644 > > --- a/meta/classes-recipe/kernel.bbclass > > +++ b/meta/classes-recipe/kernel.bbclass > > @@ -336,7 +336,7 @@ kernel_do_transform_bundled_initramfs() { > > do_transform_bundled_initramfs[dirs] = "${B}" > > > > python do_package:prepend () { > > -os.environ['STRIP'] = d.getVar('KERNEL_STRIP') > > +d.setVar('STRIP', d.getVar('KERNEL_STRIP').strip()) > > Looks fine to me. > > I can't say that I know the mechanics if every setVar'd variable makes it into > the environment to be available for the build process .. but since it is > working > for you, I assume it does :) FWIW, only variables that have their export flag set or which exported at some point, which STRIP presumably does or is. Cheers, Richard -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#189693): https://lists.openembedded.org/g/openembedded-core/message/189693 Mute This Topic: https://lists.openembedded.org/mt/102167569/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [PATCH] kernel.bbclass: Use strip utility used for kernel build in do_package
On Tue, Oct 24, 2023 at 6:07 PM Khem Raj wrote: > > os.environ does not pass this down to runstrip() function and in > strip_execs() its using STRIP bitbake variable to find the strip utility > to use. Since there might be a trailing whitespace in KERNEL_STRIP > remove that otherwise python is not able to launch it. > e.g. > > FileNotFoundError: [Errno 2] No such file or directory: > 'riscv64-yoe-linux-strip ' > > This is more evident when STRIP and KERNEL_STRIP are different utilities > e.g. when using clang as default toolchain but using gcc+binutils only for > kernel build. > > Signed-off-by: Khem Raj > Cc: Bruce Ashfield > --- > meta/classes-recipe/kernel.bbclass | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/meta/classes-recipe/kernel.bbclass > b/meta/classes-recipe/kernel.bbclass > index 2ec9ea2091e..16b85dbca48 100644 > --- a/meta/classes-recipe/kernel.bbclass > +++ b/meta/classes-recipe/kernel.bbclass > @@ -336,7 +336,7 @@ kernel_do_transform_bundled_initramfs() { > do_transform_bundled_initramfs[dirs] = "${B}" > > python do_package:prepend () { > -os.environ['STRIP'] = d.getVar('KERNEL_STRIP') > +d.setVar('STRIP', d.getVar('KERNEL_STRIP').strip()) Looks fine to me. I can't say that I know the mechanics if every setVar'd variable makes it into the environment to be available for the build process .. but since it is working for you, I assume it does :) Bruce > } > > python do_devshell:prepend () { > -- > 2.42.0 > -- - Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end - "Use the force Harry" - Gandalf, Star Trek II -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#189659): https://lists.openembedded.org/g/openembedded-core/message/189659 Mute This Topic: https://lists.openembedded.org/mt/102167569/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [PATCH] kernel.bbclass: Use strip utility used for kernel build in do_package
os.environ does not pass this down to runstrip() function and in strip_execs() its using STRIP bitbake variable to find the strip utility to use. Since there might be a trailing whitespace in KERNEL_STRIP remove that otherwise python is not able to launch it. e.g. FileNotFoundError: [Errno 2] No such file or directory: 'riscv64-yoe-linux-strip ' This is more evident when STRIP and KERNEL_STRIP are different utilities e.g. when using clang as default toolchain but using gcc+binutils only for kernel build. Signed-off-by: Khem Raj Cc: Bruce Ashfield --- meta/classes-recipe/kernel.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/classes-recipe/kernel.bbclass b/meta/classes-recipe/kernel.bbclass index 2ec9ea2091e..16b85dbca48 100644 --- a/meta/classes-recipe/kernel.bbclass +++ b/meta/classes-recipe/kernel.bbclass @@ -336,7 +336,7 @@ kernel_do_transform_bundled_initramfs() { do_transform_bundled_initramfs[dirs] = "${B}" python do_package:prepend () { -os.environ['STRIP'] = d.getVar('KERNEL_STRIP') +d.setVar('STRIP', d.getVar('KERNEL_STRIP').strip()) } python do_devshell:prepend () { -- 2.42.0 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#189658): https://lists.openembedded.org/g/openembedded-core/message/189658 Mute This Topic: https://lists.openembedded.org/mt/102167569/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-