Re: linux-next: build failure after merge of the kbuild tree

From: Masahiro Yamada
Date: Wed Sep 11 2024 - 21:50:43 EST


On Wed, Sep 11, 2024 at 10:21 PM Kris Van Hees <kris.van.hees@xxxxxxxxxx> wrote:
>
> On Wed, Sep 11, 2024 at 06:38:19PM +0900, Masahiro Yamada wrote:
> > On Wed, Sep 11, 2024 at 9:18???AM Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
> > >
> > > Hi all,
> > >
> > > After merging the kbuild tree, today's linux-next build (x86_64
> > > allmodconfig) failed like this:
> > >
> > > make[3]: *** Deleting file 'modules.builtin.ranges'
> > > /bin/sh: 1: scripts/generate_builtin_ranges.awk: not found
> > > make[3]: *** [scripts/Makefile.vmlinux:47: modules.builtin.ranges] Error 127
> > > make[2]: *** [Makefile:1157: vmlinux] Error 2
> > > make[2]: *** Waiting for unfinished jobs....
> > > make[1]: *** [Makefile:224: __sub-make] Error 2
> > > make: *** [Makefile:224: __sub-make] Error 2
> > > Command exited with non-zero status 2
> > >
> > > Caused by commit
> > >
> > > 04b15cdd611a ("kbuild: generate offset range data for builtin modules")
> > >
> > > I do not have gawk installed - I do have mawk installed (as awk). Does
> > > this script actually need gawk, or will just plain awk suffice?
>
> The scripts does need gawk because other flavours like mawk do not have the
> features that the scripts depend on.
>
> > >
> > > I have installed gawk.
> > >
> >
> >
> > This is what I was worried about.
> >
> > As Documentation/process/changes.rst was modified in that commit,
> > it specifically requires GNU AWK.
> >
> > Anyway, you were able to fix the build error
> > by installing /usr/bin/gawk.
> >
> > If a distro installs gawk somewhere else,
> > (/usr/local/bin/gawk, for example), it is a problem.
> > The shebang "#!/usr/bin/gawk -f" will not work.
> > "#!/usr/bin/env gawk -f" will not work either.
> >
> > More people may start complaining about it.
>
> For the generator script, passing it as a script explicitly to gawk would
> work because then the regular PATH search will apply, i.e.
>
> gawk -f scripts/generate_builtin_ranges.awk <args>
>
> The scripts/verify_builtin_ranges.awk script can be invoked the same way,
> or simply as an executable script if gawk is installed in the standard place.
>
>
> Other utilities that are executed during the kernel build seem to depend
> on being found using the PATH, so perhaps changing the recipe in the makefile
> to use gawk -f <script> <args> would be an acceptable solution?
>
> Kris


I think it is better.


--
Best Regards
Masahiro Yamada