lkml.org 
[lkml]   [2024]   [Apr]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH v5] kallsyms: Avoid weak references for kallsyms symbols
    On Sat, Apr 20, 2024 at 11:53 PM Ard Biesheuvel <ardb+git@google.com> wrote:
    >
    > From: Ard Biesheuvel <ardb@kernel.org>
    >
    > kallsyms is a directory of all the symbols in the vmlinux binary, and so
    > creating it poses somewhat of a chicken-and-egg problem, as its non-zero
    > size affects the layout of the binary, and therefore the values of the
    > symbols.
    >
    > For this reason, the kernel is linked more than once, and the first pass
    > does not include any kallsyms data at all. For the linker to accept
    > this, the symbol declarations describing the kallsyms metadata are
    > emitted as having weak linkage, so they can remain unsatisfied. During
    > the subsequent passes, the weak references are satisfied by the kallsyms
    > metadata that was constructed based on information gathered from the
    > preceding passes.
    >
    > Weak references lead to somewhat worse codegen, because taking their
    > address may need to produce NULL (if the reference was unsatisfied), and
    > this is not usually supported by RIP or PC relative symbol references.
    >
    > Given that these references are ultimately always satisfied in the final
    > link, let's drop the weak annotation on the declarations, and instead,
    > provide fallback definitions with weak linkage. This informs the
    > compiler that ultimately, the reference will always be satisfied.
    >
    > While at it, drop the FRV specific annotation that these symbols reside
    > in .rodata - FRV is long gone.
    >
    > Cc: Masahiro Yamada <masahiroy@kernel.org>
    > Cc: linux-kbuild@vger.kernel.org
    > Acked-by: Nick Desaulniers <ndesaulniers@google.com>
    > Acked-by: Kees Cook <keescook@chromium.org>
    > Acked-by: Arnd Bergmann <arnd@arndb.de>
    > Link: https://lore.kernel.org/all/20240415075837.2349766-5-ardb+git@google.com
    > Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    > ---
    > v5: - avoid PROVIDE() in the linker script, use weak definitions instead
    > - drop tested-by, replace reviewed-by with acked-by
    >

    Applied to linux-kbuild. Thanks.


    --
    Best Regards
    Masahiro Yamada

    \
     
     \ /
      Last update: 2024-05-27 17:56    [W:2.335 / U:0.332 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site