Re: [kbuild-all] Re: powerpc-linux-objdump: Warning: Unrecognized form: 0x23

From: Nick Desaulniers
Date: Thu Sep 01 2022 - 13:04:30 EST


On Thu, Sep 1, 2022 at 9:55 AM Nathan Chancellor <nathan@xxxxxxxxxx> wrote:
>
> On Thu, Sep 01, 2022 at 01:52:42PM +0800, Chen, Rong A wrote:
> >
> >
> > On 9/1/2022 1:45 PM, Christophe Leroy wrote:
> > >
> > >
> > > Le 01/09/2022 à 06:59, Chen, Rong A a écrit :
> > > >
> > > >
> > > > On 9/1/2022 10:03 AM, Nathan Chancellor wrote:
> > > > > Hi Rong,
> > > > >
> > > > > On Thu, Sep 01, 2022 at 09:15:58AM +0800, Chen, Rong A wrote:
> > > > > >
> > > > > >
> > > > > > On 8/31/2022 11:40 PM, Nathan Chancellor wrote:
> > > > > > > On Wed, Aug 31, 2022 at 02:52:36PM +0800, kernel test robot wrote:
> > > > > > > > tree:
> > > > > > > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> > > > > > > > master
> > > > > > > > head: dcf8e5633e2e69ad60b730ab5905608b756a032f
> > > > > > > > commit: f9b3cd24578401e7a392974b3353277286e49cee Kconfig.debug:
> > > > > > > > make DEBUG_INFO selectable from a choice
> > > > > > > > date: 5 months ago
> > > > > > > > config: powerpc-buildonly-randconfig-r003-20220830
> > > > > > > > (https://download.01.org/0day-ci/archive/20220831/202208311414.4OPuYS9K-lkp@xxxxxxxxx/config)
> > > > > > > > compiler: clang version 16.0.0
> > > > > > > > (https://github.com/llvm/llvm-project
> > > > > > > > c7df82e4693c19e3fd2e25c83eb04d9deb7b7b59)
> > > > > > > > reproduce (this is a W=1 build):
> > > > > > > > wget
> > > > > > > > https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > > > > > > > chmod +x ~/bin/make.cross
> > > > > > > > # install powerpc cross compiling tool for clang build
> > > > > > > > # apt-get install binutils-powerpc-linux-gnu
> > > > > > > > #
> > > > > > > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f9b3cd24578401e7a392974b3353277286e49cee
> > > > > > > > git remote add linus
> > > > > > > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> > > > > > > > git fetch --no-tags linus master
> > > > > > > > git checkout f9b3cd24578401e7a392974b3353277286e49cee
> > > > > > > > # save the config file
> > > > > > > > mkdir build_dir && cp config build_dir/.config
> > > > > > > > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang
> > > > > > > > make.cross W=1 O=build_dir ARCH=powerpc SHELL=/bin/bash
> > > > > > > >
> > > > > > > > If you fix the issue, kindly add following tag where applicable
> > > > > > > > Reported-by: kernel test robot <lkp@xxxxxxxxx>
> > > > > > > >
> > > > > > > > All warnings (new ones prefixed by >>):
> > > > > > > >
> > > > > > > > > > powerpc-linux-objdump: Warning: Unrecognized form: 0x23
> > > > > > >
> > > > > > > Given this is clang 16.0.0 with
> > > > > > > CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y, which uses DWARF5 by
> > > > > > > default instead of DWARF4, it looks like older binutils not
> > > > > > > understanding DWARF5. What version of binutils is being used by the
> > > > > > > bot?
> > > > > >
> > > > > > Hi Nathan,
> > > > > >
> > > > > > We're using binutils v2.38.90.20220713-2
> > > > > >
> > > > > > ||/ Name Version Architecture Description
> > > > > > +++-==============-==================-============-==========================================
> > > > > > ii binutils 2.38.90.20220713-2 amd64 GNU assembler,
> > > > > > linker and binary utilities
> > > > >
> > > > > Thanks for chiming in! This looks like the output of 'dpkg -l', right? I
> > > >
> > > > Hi Nathan,
> > > >
> > > > oh, yes, I misunderstood, it's not related to this package.
> > > >
> > > > > noticed on second glance that the tuple for the objdump warning above is
> > > > > 'powerpc-linux-', which leads me to believe that a kernel.org toolchain
> > > > > (or a self compiled one) is being used. I would expect the tuple to be
> > > > > 'powerpc-linux-gnu-' if Debian's package was being used. Is that
> > > > > possible?
> > > >
> > > > you are right, we used a self-compiled toolchain, we'll try the binutils
> > > > from debian package.
> > >
> > > Can you first tell us the version you are using ?
> > >
> > > powerpc-linux-objdump -v
> > >
> > > That will tell you the version.
> >
> > Hi Christophe,
> >
> > the version is v2.38:
> >
> > $ ./powerpc-linux-objdump -v
> > GNU objdump (GNU Binutils) 2.38
> > Copyright (C) 2022 Free Software Foundation, Inc.
> > This program is free software; you may redistribute it under the terms of
> > the GNU General Public License version 3 or (at your option) any later
> > version.
> > This program has absolutely no warranty.
>
> Thanks! I did some research and it seems like this warning is expected
> with binutils older than 2.39. The warning appears to come from
> read_and_display_attr_value() in binutils/dwarf.c. 0x22 and 0x23 are
> DW_FORM_loclistx and DW_FORM_rnglistx, which were only recently
> supported in that function.
>
> https://sourceware.org/bugzilla/show_bug.cgi?id=28981
> https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=19c26da69d68d5d863f37c06ad73ab6292d02ffa
>
> That change shipped in binutils 2.39. I am not really sure how we should
> work around this in the kernel, other than maybe requiring binutils
> 2.39+ for CONFIG_DEBUG_INFO_DWARF5. Unfortunately, that will not fix
> CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT when DWARF5 is the default
> version...

I've been working on a series that will encode the default implicit
dwarf version based on compiler version check. Maybe that can be
extended/reused here once that lands?
https://lore.kernel.org/llvm/20220831184408.2778264-1-ndesaulniers@xxxxxxxxxx/
Series needs revision, but it's on the right track.

> Alternatively, switching to llvm-objdump for clang builds
> would help :) I am not aware of any issues that would affect that switch
> for PowerPC:
>
> https://github.com/ClangBuiltLinux/linux/labels/%5BTOOL%5D%20llvm-objdump

Oh, is 0day doing `make CC=clang` rather than `make LLVM=1`? Rong,
any chance we get 0day folks to test LLVM=1 for more architectures?
Ideally we'd test both, preferably LLVM=1 if we had to choose.

>
> Cheers,
> Nathan



--
Thanks,
~Nick Desaulniers