Re: [PATCH] kbuild: add script check for cross compilation utilities
From: Nick Desaulniers
Date: Mon May 13 2019 - 14:05:51 EST
On Sat, May 11, 2019 at 8:05 PM Masahiro Yamada
> On Sat, May 11, 2019 at 11:25 AM Nathan Chancellor
> <natechancellor@xxxxxxxxx> wrote:
> > Few comments below but nothing major, this seems to work fine as is.
> > On Thu, May 09, 2019 at 01:19:21PM -0700, 'Nick Desaulniers' via Clang Built Linux wrote:
> > > When cross compiling via setting CROSS_COMPILE, if the prefixed tools
> > > are not found, then the host utilities are often instead invoked, and
> > > produce often difficult to understand errors. This is most commonly the
> > > case for developers new to cross compiling the kernel that have yet to
> > > install the proper cross compilation toolchain. Rather than charge
> > > headlong into a build that will fail obscurely, check that the tools
> > > exist before starting to compile, and fail with a friendly error
> > > message.
> > This part of the commit message makes it sound like this is a generic
> > problem when it is actually specific to clang. make will fail on its
> > own when building with gcc if CROSS_COMPILE is not properly set (since
> > gcc won't be found).
> > On a side note, seems kind of odd that clang falls back to the host
> > tools when a non-host --target argument is used... (how in the world is
> > that expected to work?)
> I agree.
> Failure is much better than falling back to host tools.
It was probably assumed that the default case is usually not cross
compilation. But I think we can add a check to Clang's driver where
`if target_triple != host_triple then don't invoke host tools`.