On Thu, Sep 29, 2022 at 6:53 AM Nick Desaulniers <ndesaulniers@xxxxxxxxxx> wrote: > > On Wed, Sep 28, 2022 at 2:36 PM Nathan Chancellor <nathan@xxxxxxxxxx> wrote: > > > > On Wed, Sep 28, 2022 at 02:13:47PM -0700, Nick Desaulniers wrote: > > > Reraising my concern from > > > https://github.com/ClangBuiltLinux/linux/issues/1719#issuecomment-1258678969 > > > > Sorry, I thought I addressed your concern with my comment right below it > > but I probably should have worded it better. > > No, I just missed your point about other architectures. > > > > We've put a fair amount of work into getting CC=clang LLVM_IAS=0 to > > > work for DWARF v5 (both on the GNU binutils side, and Kbuild), I'd > > > hate to see that effectively knee-capped because of an issue in GNU > > > binutils that is only relevant for one architecture. > > > > Sure, that is a completely reasonable concern. However... > > > > > I'd concede support for ARCH=riscv, but not for all other > > > architectures, which this effectively does. > > > > No, it does not, CONFIG_AS_HAS_NON_CONST_LEB128 can still be enabled > > when GNU as supports this construct for a particular architecture; as > > far as I can tell, RISC-V is the only one that doesn't. See the tests > > with ARCH=arm64 and ARCH=x86_64 compared with ARCH=riscv below. > > Ah, sorry for the noise then. Thanks for the patch. > Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> > > -- > Thanks, > ~Nick Desaulniers This patch is incomplete. It looks like Clang 14 switched to DWARF v5 by default. I see the same errors for CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y masahiro@zoe:~/ref/linux$ clang --version | head -n1 Ubuntu clang version 14.0.0-1ubuntu1 masahiro@zoe:~/ref/linux$ grep DEBUG_INFO_DWARF .config CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y # CONFIG_DEBUG_INFO_DWARF4 is not set # CONFIG_DEBUG_INFO_DWARF5 is not set masahiro@zoe:~/ref/linux$ make ARCH=riscv LLVM=1 LLVM_IAS=0 CROSS_COMPILE=riscv64-linux-gnu- -j24 CALL scripts/atomic/check-atomics.sh CALL scripts/checksyscalls.sh CC arch/riscv/kernel/vdso/vgettimeofday.o /tmp/vgettimeofday-5997b4.s: Assembler messages: /tmp/vgettimeofday-5997b4.s:2698: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2699: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2705: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2706: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2712: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2713: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2719: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2720: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2726: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2727: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2731: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2732: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2736: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2737: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2743: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2744: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2748: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2749: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2755: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2756: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2760: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2761: Error: non-constant .uleb128 is not supported /tmp/vgettimeofday-5997b4.s:2765: Error: non-constant .uleb128 is not supported ... -- Best Regards Masahiro Yamada