lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 9 Aug 2023 17:55:34 +0800
From:   Tiezhu Yang <yangtiezhu@...ngson.cn>
To:     Peter Zijlstra <peterz@...radead.org>
Cc:     Josh Poimboeuf <jpoimboe@...nel.org>,
        Huacai Chen <chenhuacai@...nel.org>, loongarch@...ts.linux.dev,
        linux-kernel@...r.kernel.org, loongson-kernel@...ts.loongnix.cn
Subject: Re: [PATCH v1 0/6] Add objtool and orc support for LoongArch



On 07/25/2023 08:01 PM, Peter Zijlstra wrote:
> On Tue, Jul 25, 2023 at 04:15:04PM +0800, Tiezhu Yang wrote:
>
>> To be honest, there still exist some objtool warnings, I will try my best
>> to fix them in the later versions or the other separate patches.
>
> Please give us some examples of what's still going wrong. Are you
> running into jump-tables? IIRC I've not seen code for those yet.
>

Sorry for the late reply, I did more analysis and test recently.
I have already addressed most of the objtool warnings, discussed
offline with compiler engineers, sent separate patch to maillist
or modified the related code locally.

For example,
arch/loongarch/mm/fault.o: warning: objtool: no_context.part.0() falls 
through to next function do_sigsegv()
[PATCH] LoongArch: Remove noreturn attribute for die()
https://lore.kernel.org/loongarch/1690871581-23944-1-git-send-email-yangtiezhu@loongson.cn/

Additionally, when I update the latest upstream gcc and binutils,
it generates more objtool warnings, like this:
init/version.o: warning: objtool: early_hostname+0x20: sibling call from 
callable instruction with modified stack frame

[fedora@...ux 6.5.test]$ gcc --version
gcc (GCC) 14.0.0 20230803 (experimental)
[fedora@...ux 6.5.test]$ as --version
GNU assembler (GNU Binutils) 2.41.50.20230803
[fedora@...ux 6.5.test]$ objdump -M no-aliases -D init/version.o
0000000000000000 <early_hostname>:
    0:   00150085        or              $a1, $a0, $zero
    4:   1a000004        pcalau12i       $a0, 0
    8:   02ffc063        addi.d          $sp, $sp, -16
    c:   02810406        addi.w          $a2, $zero, 65
   10:   02c00084        addi.d          $a0, $a0, 0
   14:   29c02061        st.d            $ra, $sp, 8
   18:   54000000        bl              0       # 18 <early_hostname+0x18>
   1c:   0281000c        addi.w          $t0, $zero, 64
   20:   6c001584        bgeu            $t0, $a0, 20    # 34 <.L2>
   24:   1a000004        pcalau12i       $a0, 0
   28:   02810005        addi.w          $a1, $zero, 64
   2c:   02c00084        addi.d          $a0, $a0, 0
   30:   54000000        bl              0       # 30 <early_hostname+0x30>

0000000000000034 <.L2>:
   34:   28c02061        ld.d            $ra, $sp, 8
   38:   00150004        or              $a0, $zero, $zero
   3c:   02c04063        addi.d          $sp, $sp, 16
   40:   4c000020        jirl            $zero, $ra, 0

A preliminary analysis shows that the common functions is_sibling_call()
and add_jump_destinations() in tools/objtool/check.c need to be modified
to handle the case "reloc->sym->type == STT_NOTYPE", I will send a patch
in the next week.

Thanks,
Tiezhu

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ