• WANG Xuerui's avatar
    modpost: Ignore relaxation and alignment marker relocs on LoongArch · 2772ae4d
    WANG Xuerui authored
    With recent trunk versions of binutils and gcc, alignment directives are
    represented with R_LARCH_ALIGN relocs on LoongArch, which is necessary
    for the linker to maintain alignment requirements during its relaxation
    passes. And even though the kernel is built with relaxation disabled, so
    far a small number of R_LARCH_RELAX marker relocs are still emitted as
    part of la.* pseudo instructions in assembly. These two kinds of relocs
    do not refer to symbols, which can trip up modpost's section mismatch
    checks, because the r_offset of said relocs can be zero or any other
    meaningless value, eventually leading to a `from == NULL` condition in
    default_mismatch_handler and SIGSEGV.
    
    As the two kinds of relocs are not concerned with symbols, just ignore
    them for section mismatch check purposes.
    Signed-off-by: default avatarWANG Xuerui <git@xen0n.name>
    Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
    2772ae4d
modpost.c 56.9 KB