[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAK7LNAQLBZOOjN7humBHKO9R3C5UGKfuSEX5dSEajt8KiSrAvQ@mail.gmail.com>
Date: Tue, 17 Jan 2023 23:33:30 +0900
From: Masahiro Yamada <masahiroy@...nel.org>
To: Thomas Weißschuh <thomas@...ch.de>
Cc: Thomas Weißschuh <linux@...ssschuh.net>,
linux-kbuild@...r.kernel.org,
Amy Parker <apark0006@...dent.cerritos.edu>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] kheaders: explicitly validate existence of cpio command
On Tue, Jan 17, 2023 at 10:19 PM Thomas Weißschuh <thomas@...ch.de> wrote:
>
> On Tue, Jan 17, 2023 at 09:46:02AM +0100, Nicolas Schier wrote:
> > On Tue, Jan 17, 2023 at 05:30:43AM +0000, Thomas Weißschuh wrote:
> > > If the cpio command is not available the error emitted by
> > > gen_kheaders.so is not clear as all output of the call to cpio is
> > > discarded:
> > >
> > > GNU make 4.4:
> > >
> > > GEN kernel/kheaders_data.tar.xz
> > > find: 'standard output': Broken pipe
> > > find: write error
> > > make[2]: *** [kernel/Makefile:157: kernel/kheaders_data.tar.xz] Error 127
> > > make[1]: *** [scripts/Makefile.build:504: kernel] Error 2
> > >
> > > GNU make < 4.4:
> > >
> > > GEN kernel/kheaders_data.tar.xz
> > > make[2]: *** [kernel/Makefile:157: kernel/kheaders_data.tar.xz] Error 127
> > > make[2]: *** Waiting for unfinished jobs....
> > > make[1]: *** [scripts/Makefile.build:504: kernel] Error 2
> > >
> > > Add an explicit check that will trigger a clear message about the issue:
> > >
> > > CHK kernel/kheaders_data.tar.xz
> > > ./kernel/gen_kheaders.sh: line 17: type: cpio: not found
> >
> > Thanks for the patch! What would you think about an even more verbose
> > message? Perhaps something like:
> >
> > echo >&2 ' *** "cpio" is required for "CONFIG_IKHEADERS". >&2
>
> Wouldn't hurt obviously.
> The other scripts used by the kernel don't seem to try to provide this
> kind of explicit message either, though.
> Having a line number, some sort of "not found" and the name of the
> command are enough, in my opinion.
Agree. I am fine with this patch.
Just a side note.
'type' is defined in posix [1], so this code is portable.
Kbuild often uses "command -v" to check the existence of a command
because it is also posix compliant [2].
I just wondered why we did not use 'type' before...
'type' is more efficient because it is shell-builtin
(at least for dash and bash) but 'command' is not.
[1]: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/type.html
[2]: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/command.html
>
> > Reviewed-by: Nicolas Schier <n.schier@....de>
>
> Thanks!
>
> Thomas
--
Best Regards
Masahiro Yamada
Powered by blists - more mailing lists