[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4c6da74c-4dc1-796c-5f22-bdd075b23c2b@intel.com>
Date: Fri, 2 Sep 2022 08:54:14 +0800
From: "Chen, Rong A" <rong.a.chen@...el.com>
To: Nick Desaulniers <ndesaulniers@...gle.com>,
Nathan Chancellor <nathan@...nel.org>
Cc: Christophe Leroy <christophe.leroy@...roup.eu>,
kernel test robot <lkp@...el.com>,
Kees Cook <keescook@...omium.org>,
"llvm@...ts.linux.dev" <llvm@...ts.linux.dev>,
"kbuild-all@...ts.01.org" <kbuild-all@...ts.01.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Arnd Bergmann <arnd@...db.de>,
Masahiro Yamada <masahiroy@...nel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Linux Memory Management List <linux-mm@...ck.org>
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 <nathan@...nel.org> 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@intel.com/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@...el.com>
>>>>>>>>>
>>>>>>>>> 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@google.com/
> 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
>
>
>
Powered by blists - more mailing lists