Re: [next] riscv: Linux next-20220404 riscv defconfig builds failed.

From: Guo Ren
Date: Tue Apr 05 2022 - 01:17:41 EST


On Tue, Apr 5, 2022 at 12:57 AM Nathan Chancellor <nathan@xxxxxxxxxx> wrote:
>
> On Mon, Apr 04, 2022 at 03:28:41PM +0530, Naresh Kamboju wrote:
> > Linux next-20220404 riscv defconfig builds failed.
> >
> > Regressions found on riscv:
> > - riscv-riscv-clang-14-defconfig
> > - riscv-riscv-gcc-10-defconfig
> > - riscv-riscv-clang-13-defconfig
> > - riscv-riscv-clang-12-defconfig
> > - riscv-riscv-clang-11-defconfig
> > - riscv-riscv-gcc-11-defconfig
> > - riscv-riscv-gcc-8-defconfig
> > - riscv-riscv-gcc-9-defconfig
> > - riscv-riscv-clang-nightly-defconfig
> >
> >
> > arch/riscv/kernel/compat_signal.c:7:10: fatal error:
> > linux/tracehook.h: No such file or directory
> > 7 | #include <linux/tracehook.h>
> > | ^~~~~~~~~~~~~~~~~~~
> > compilation terminated.
> > make[3]: *** [scripts/Makefile.build:289:
> > arch/riscv/kernel/compat_signal.o] Error 1
>
> For what it's worth, I also see:
>
> $ make -skj"$(nproc)" ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- defconfig all
> arch/riscv/kernel/compat_vdso/compat_vdso.lds.S:3:10: fatal error: ../vdso/vdso.lds.S: No such file or directory
> 3 | #include <../vdso/vdso.lds.S>
> | ^~~~~~~~~~~~~~~~~~~~
> compilation terminated.
> make[2]: *** [scripts/Makefile.build:462: arch/riscv/kernel/compat_vdso/compat_vdso.lds] Error 1
> arch/riscv/kernel/compat_vdso/rt_sigreturn.S:3:10: fatal error: ../vdso/rt_sigreturn.S: No such file or directory
> 3 | #include <../vdso/rt_sigreturn.S>
> | ^~~~~~~~~~~~~~~~~~~~~~~~
> compilation terminated.
> arch/riscv/kernel/compat_vdso/note.S:3:10: fatal error: ../vdso/note.S: No such file or directory
> 3 | #include <../vdso/note.S>
> | ^~~~~~~~~~~~~~~~
> compilation terminated.
> arch/riscv/kernel/compat_vdso/getcpu.S:3:10: fatal error: ../vdso/getcpu.S: No such file or directory
> 3 | #include <../vdso/getcpu.S>
> | ^~~~~~~~~~~~~~~~~~
> compilation terminated.
> make[2]: *** [arch/riscv/kernel/compat_vdso/Makefile:43: arch/riscv/kernel/compat_vdso/rt_sigreturn.o] Error 1
> make[2]: *** [arch/riscv/kernel/compat_vdso/Makefile:43: arch/riscv/kernel/compat_vdso/note.o] Error 1
> make[2]: *** [arch/riscv/kernel/compat_vdso/Makefile:43: arch/riscv/kernel/compat_vdso/getcpu.o] Error 1
> arch/riscv/kernel/compat_vdso/flush_icache.S:3:10: fatal error: ../vdso/flush_icache.S: No such file or directory
> 3 | #include <../vdso/flush_icache.S>
> | ^~~~~~~~~~~~~~~~~~~~~~~~
> compilation terminated.
> make[2]: *** [arch/riscv/kernel/compat_vdso/Makefile:43: arch/riscv/kernel/compat_vdso/flush_icache.o] Error 1
>
> I am guessing this code was never tested with $(srctree) == $(objtree).
Thx for pointing it out:
I always use:
make -skj"$(nproc)" ARCH=riscv
CROSS_COMPILE=riscv64-unknown-linux-gnu- EXTRA_CFLAGS+=-g
O=../build-riscv/ defconfig all

When I change to:
make -skj"$(nproc)" ARCH=riscv
CROSS_COMPILE=riscv64-unknown-linux-gnu- EXTRA_CFLAGS+=-g defconfig
all

I got your problem.

>
> Cheers,
> Nathan


--
Best Regards
Guo Ren

ML: https://lore.kernel.org/linux-csky/