Re: headers_install builds break on a lot of targets?

From: Arnd Bergmann
Date: Wed Jun 03 2020 - 13:59:54 EST


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