Re: [PATCH v2 3/3] selftests/nolibc: fix up O= option support

From: Zhangjin Wu
Date: Sun Aug 06 2023 - 08:17:55 EST


> On Sat, Aug 05, 2023 at 02:13:11PM +0800, Zhangjin Wu wrote:
> > To avoid pollute the source code tree and avoid mrproper for every
> > architecture switch, the O= argument must be supported.
> >
> > Both IMAGE and .config are from the building directory, let's use
> > objtree instead of srctree for them.
> >
> > If no O= option specified, means building kernel in source code tree,
> > objtree should be srctree in such case.
> >
> > To support relative path, as suggested by Thomas, $(COMMAND_O) is used
> > to pass the O=$(ABSOLUTE_O) to the $(MAKE) commands.
>
> Zhangjin, I cannot get this one to work, regardless of what I try:
>
> $ make -j8 O=$PWD/output-i386 nolibc-test XARCH=i386 CROSS_COMPILE=/f/tc/nolibc/gcc-12.3.0-nolibc/i386-linux/bin/i386-linux- CC=/f/tc/nolibc/gcc-12.3.0-nolibc/i386-linux/bin/i386-linux-gcc
> (...)
> CC nolibc-test
> In file included from sysroot/i386/include/stdio.h:14,
> from nolibc-test.c:13:
> sysroot/i386/include/errno.h:10:10: fatal error: asm/errno.h: No such file or directory
> 10 | #include <asm/errno.h>
> | ^~~~~~~~~~~~~
> compilation terminated.
>

Willy, I also just reproduced the issue, seems only i386 sysroot has no
asm/errno.h, will check why it is no rightly installed later.

$ find sysroot/ -name "errno.h"
sysroot/arm/include/errno.h
sysroot/arm/include/asm-generic/errno.h
sysroot/arm/include/asm/errno.h
sysroot/arm/include/linux/errno.h
sysroot/riscv/include/errno.h
sysroot/riscv/include/asm-generic/errno.h
sysroot/riscv/include/asm/errno.h
sysroot/riscv/include/linux/errno.h
sysroot/s390/include/errno.h
sysroot/s390/include/asm-generic/errno.h
sysroot/s390/include/asm/errno.h
sysroot/s390/include/linux/errno.h
sysroot/arm64/include/errno.h
sysroot/arm64/include/asm-generic/errno.h
sysroot/arm64/include/asm/errno.h
sysroot/arm64/include/linux/errno.h
sysroot/mips/include/errno.h
sysroot/mips/include/asm-generic/errno.h
sysroot/mips/include/asm/errno.h
sysroot/mips/include/linux/errno.h
sysroot/x86_64/include/errno.h
sysroot/x86_64/include/asm-generic/errno.h
sysroot/x86_64/include/asm/errno.h
sysroot/x86_64/include/linux/errno.h
sysroot/i386/include/errno.h
sysroot/i386/include/asm-generic/errno.h
sysroot/i386/include/linux/errno.h
sysroot/powerpc/include/errno.h
sysroot/powerpc/include/asm-generic/errno.h
sysroot/powerpc/include/asm/errno.h
sysroot/powerpc/include/linux/errno.h

> I'll leave it aside for now as I've spent way longer than I hoped on
> these series. I could take the previous two patches however.
>

Ok, let's ignore this one, I will find why sysroot not install well for i386.

Thanks,
Zhangjin

> Thanks,
> Willy