Skip to content
  • Andrey Ryabinin's avatar
    kernel: add support for .init_array.* constructors · 9ddf8252
    Andrey Ryabinin authored
    KASan uses constructors for initializing redzones for global variables.
    Globals instrumentation in GCC 4.9.2 produces constructors with priority
    Currently kernel ignores such constructors.  Only constructors with
    default priority supported (.init_array)
    This patch adds support for constructors with priorities.  For kernel
    image we put pointers to constructors between __ctors_start/__ctors_end
    and do_ctors() will call them on start up.  For modules we merge
    .init_array.* sections into resulting .init_array.  Module code properly
    handles constructors in .init_array section.
    Signed-off-by: default avatarAndrey Ryabinin <>
    Cc: Dmitry Vyukov <>
    Cc: Konstantin Serebryany <>
    Cc: Dmitry Chernenkov <>
    Signed-off-by: default avatarAndrey Konovalov <>
    Cc: Yuri Gribov <>
    Cc: Konstantin Khlebnikov <>
    Cc: Sasha Levin <>
    Cc: Chris...