Re: headers_install builds break on a lot of targets?

From: Masahiro Yamada
Date: Wed Jun 03 2020 - 21:08:23 EST


On Thu, Jun 4, 2020 at 2:59 AM Arnd Bergmann <arnd@xxxxxxxx> wrote:
>
> On Wed, Jun 3, 2020 at 7:04 PM Rich Felker <dalias@xxxxxxxx> wrote:
> > On Wed, Jun 03, 2020 at 08:49:54AM -0500, Rob Landley wrote:
> > > make ARCH=$i distclean defconfig headers_install \
> > >
> > > On the bright side, the resulting fruitbasket.tar.xz is 1.5 megabytes. The
> > > downside is I have no idea how broken the resulting header files are after this
> > > error-fest:
> > >
> > > alpha
> > > arc
> > > gcc: error: unrecognized command line option â-mmedium-callsâ
> > > gcc: error: unrecognized command line option â-mno-sdataâ; did you mean
> > > â-fno-statsâ?
> > > gcc: error: unrecognized command line option â-mmedium-callsâ
> > > gcc: error: unrecognized command line option â-mno-sdataâ; did you mean
> > > â-fno-statsâ?
> > > [...]
> >
> > Uhg. Surely there should be some fix for whatever mistaken dep is
> > behind this? Headers shouldn't actually depend on any config/compiler
> > output, should they??
>
> The first one of the two comes from "make defconfig", which definitely needs
> a working $TARGET compiler, but isn't actually needed before
> "make headers_install" as I just checked.
>
> > Or is that machinery somehow involved in
> > generating the syscall lists and similar?
>
> The syscall list for ARC is still not generated (that's on my todo list), but
> something does call it even for "make headers_install".
>
> What it does is to set Makefile variables such as
>
> CC_VERSION_TEXT = $(shell $(CC) --version 2>/dev/null | head -n 1)
> and trying out all kinds of gcc options that may or may not be supported
> such as "$(call cc-option,-fno-tree-loop-im)".
>
> Setting CC=: avoids this, like
>
> make -s CC=: ARCH=$i headers_install INSTALL_HDR_PATH="$PWD/fruitbasket/$i"
>
> Arnd



You can do headers_install without the .config file.
'make defconfig' is unneeded.

headers_install should be independent of $(CC) too.


linux-next has some progress about this.

You can get clean headers_install without CROSS_COMPILE
for parisc, h8300, hexagon.


You still get warnings for ia64 and arc.
Our goal is to not require $(CC) for non-dot-config target
like 'make headers_install', 'make help', etc.


--
Best Regards
Masahiro Yamada