On Mon, Nov 11, 2024 at 03:43:27PM +0100, Quentin Schulz wrote:
> Hi Heinrich,
> 
> On 11/11/24 3:27 PM, Heinrich Schuchardt wrote:
> > Am 11. November 2024 14:20:49 MEZ schrieb Quentin Schulz 
> > <foss+ub...@0leil.net>:
> > > From: Quentin Schulz <quentin.sch...@cherry.de>
> > > 
> > > One can use ccache by prefixing the typical CROSS_COMPILE value with
> > > "ccache " (e.g. "ccache aarch64-gnu-linux-" for Aarch64). This however
> > > makes the MK_ARCH empty because sed won't find a match anymore since it
> > > expects the CROSS_COMPILE value to start with the actual toolchain (with
> > > an unlimited number of white spaces before).
> > > 
> > > This is failing builds since commit 7506c1566998 ("sandbox: Report host
> > > default-filename in native mode").
> > > 
> > > Add "ccache" prefix to ignore but participate in the matching regex used
> > > by sed to identify the target architecture.
> > > 
> > > Signed-off-by: Quentin Schulz <quentin.sch...@cherry.de>
> > > ---
> > > One can use ccache by prefixing the typical CROSS_COMPILE value with
> > > "ccache " (e.g. "ccache aarch64-gnu-linux-" for Aarch64). This however
> > > makes the MK_ARCH empty because sed won't find a match anymore since it
> > > expects the CROSS_COMPILE value to start with the actual toolchain (with
> > > an unlimited number of white spaces before).
> > > 
> > > This is failing builds since commit 7506c1566998 ("sandbox: Report host
> > > default-filename in native mode").
> > > 
> > > Add "ccache" prefix to ignore but participate in the matching regex used
> > > by sed to identify the target architecture.
> > > ---
> > > Makefile | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/Makefile b/Makefile
> > > index 
> > > 7275a02f24ca64ebd46c5dc6e769dcdee9917dca..71743db16fca930567edd67eb77f1c94e9b7b4e9
> > >  100644
> > > --- a/Makefile
> > > +++ b/Makefile
> > > @@ -21,7 +21,7 @@ include include/host_arch.h
> > > ifeq ("", "$(CROSS_COMPILE)")
> > >    MK_ARCH="${shell uname -m}"
> > > else
> > > -  MK_ARCH="${shell echo $(CROSS_COMPILE) | sed -n 
> > > 's/^[[:space:]]*\([^\/]*\/\)*\([^-]*\)-[^[:space:]]*/\2/p'}"
> > > +  MK_ARCH="${shell echo $(CROSS_COMPILE) | sed -n 
> > > 's/^\(ccache\)\?[[:space:]]*\([^\/]*\/\)*\([^-]*\)-[^[:space:]]*/\3/p'}"
> > 
> > The target architecture cannot be determined in this way.
> > 
> > You could use the riscv64 compiler to compile riscv32 when providing a gcc 
> > flag.
> > 
> > You should not make any assumptions about the naming scheme of vendor 
> > toolchains.
> > 
> 
> I am assuming nothing more than what we are already assuming for the last
> three and half years, c.f. f7691a6d736bec7915c227ac14076f9993a27367.

Yes and also, ugh, I wonder if that works right for using clang, too. It
does for how I use it, which involves setting CROSS_COMPILE anyhow but I
don't know if the LLVM-only option would work. Of course I also don't
know if that works today. The original logic is fragile, this makes it
no more or less fragile, and I'm not 100% sure I like that everyone know
has to set and test against HOST_ARCH, which we weren't before
7506c1566998 ("sandbox: Report host default-filename in native mode").

This should probably come in just after I tag -rc2 as it's a fix at
least.

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to