2022-09-01 05:50:33

by Christophe Leroy

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



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/[email protected]/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 <[email protected]>
>>>>>
>>>>> 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.

Thanks
Christophe


2022-09-01 06:43:24

by Chen, Rong A

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



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/[email protected]/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 <[email protected]>
>>>>>>
>>>>>> 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.

Best Regards,
Rong Chen

>
> Thanks
> Christophe
> _______________________________________________
> kbuild-all mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
>

2022-09-01 17:46:12

by Nathan Chancellor

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

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/[email protected]/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 <[email protected]>
> > > > > > >
> > > > > > > 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... 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

Cheers,
Nathan

2022-09-01 18:04:34

by Nick Desaulniers

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

On Thu, Sep 1, 2022 at 9:55 AM Nathan Chancellor <[email protected]> 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/[email protected]/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 <[email protected]>
> > > > > > > >
> > > > > > > > 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/[email protected]/
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

2022-09-02 01:28:30

by Chen, Rong A

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



On 9/2/2022 1:04 AM, Nick Desaulniers wrote:
> On Thu, Sep 1, 2022 at 9:55 AM Nathan Chancellor <[email protected]> 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/[email protected]/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 <[email protected]>
>>>>>>>>>
>>>>>>>>> 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/[email protected]/
> 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.

Hi Nick,

Thanks for your advice, yes, we are doing `make CC=clang`, we'll plan it
recently.

Best Regards,
Rong Chen

>
>>
>> Cheers,
>> Nathan
>
>
>

2022-09-02 01:49:29

by Philip Li

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

On Fri, Sep 02, 2022 at 08:54:14AM +0800, Chen, Rong A wrote:
>
>
> On 9/2/2022 1:04 AM, Nick Desaulniers wrote:
> > On Thu, Sep 1, 2022 at 9:55 AM Nathan Chancellor <[email protected]> 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/[email protected]/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 <[email protected]>
> > > > > > > > > >
> > > > > > > > > > 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/[email protected]/
> > 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.
>
> Hi Nick,
>
> Thanks for your advice, yes, we are doing `make CC=clang`, we'll plan it
> recently.

Hi Nick, add one question here, if we switch to LLVM=1, as not all old kernel
commits can support this option, do you suggest we only focus clang build on the kernel
that supports LLVM=1 or we need switch to CC=clang if LLVM is not supported?

>
> Best Regards,
> Rong Chen
>
> >
> > >
> > > Cheers,
> > > Nathan
> >
> >
> >
>