Nathan Chancellor
unread,Jul 30, 2021, 8:32:36 PM7/30/21Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Sign in to report message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Fangrui Song, Nick Desaulniers, Kees Cook, Arnd Bergmann, Marco Elver, linux...@vger.kernel.org, linux-...@vger.kernel.org, kasa...@googlegroups.com, clang-bu...@googlegroups.com, sta...@vger.kernel.org
On 7/30/2021 3:59 PM, Fangrui Song wrote:
> On 2021-07-30, Nick Desaulniers wrote:
>> On Fri, Jul 30, 2021 at 3:38 PM Nathan Chancellor <
nat...@kernel.org>
>> wrote:
>>>
>>> A recent change in LLVM causes module_{c,d}tor sections to appear when
>>> CONFIG_K{A,C}SAN are enabled, which results in orphan section warnings
>>> because these are not handled anywhere:
>>>
>>> ld.lld: warning:
>>> arch/x86/pci/built-in.a(legacy.o):(.text.asan.module_ctor) is being
>>> placed in '.text.asan.module_ctor'
>>> ld.lld: warning:
>>> arch/x86/pci/built-in.a(legacy.o):(.text.asan.module_dtor) is being
>>> placed in '.text.asan.module_dtor'
>>> ld.lld: warning:
>>> arch/x86/pci/built-in.a(legacy.o):(.text.tsan.module_ctor) is being
>>> placed in '.text.tsan.module_ctor'
>>
>> ^ .text.tsan.*
>
> I was wondering why the orphan section warning only arose recently.
> Now I see: the function asan.module_ctor has the SHF_GNU_RETAIN flag, so
> it is in a separate section even with -fno-function-sections (default).
Thanks for the explanation, I will add this to the commit message.
No, I forgot to test CONFIG_KCSAN with this version, rather than the
prior one I had on GitHub so I will send v2 shortly.
> asan.module_ctor is the only function AddressSanitizer synthesizes in
> the instrumented translation unit.
> There is no function called "asan".
>
> (Even if a function "asan" exists due to -ffunction-sections
> -funique-section-names, TEXT_MAIN will match .text.asan, so the
> .text.asan pattern will match nothing.)
Sounds good, I will update it to remove the .text.asan and replace it
with .text.tsan.*
>> Do we want to add these conditionally on
>> CONFIG_KASAN_GENERIC/CONFIG_KCSAN like we do for SANITIZER_DISCARDS?
I do not think there is a point in doing so but I can if others feel
strongly.
Thank you both for the comments for the comments!
Cheers,
Nathan