lkml.org 
[lkml]   [2007]   [Jul]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 12/33] kbuild: make better section mismatch reports on arm
    Date
    With this change we can find more symbols hereby improving
    the readability of the warnings.

    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
    ---
    scripts/mod/modpost.c | 24 ++++++++++++++++++++++++
    1 files changed, 24 insertions(+), 0 deletions(-)

    diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
    index b83cddb..256b3d2 100644
    --- a/scripts/mod/modpost.c
    +++ b/scripts/mod/modpost.c
    @@ -929,6 +929,26 @@ static int addend_386_rel(struct elf_info *elf, int rsection, Elf_Rela *r)
    return 0;
    }

    +static int addend_arm_rel(struct elf_info *elf, int rsection, Elf_Rela *r)
    +{
    + unsigned int r_typ = ELF_R_TYPE(r->r_info);
    +
    + switch (r_typ) {
    + case R_ARM_ABS32:
    + /* From ARM ABI: (S + A) | T */
    + r->r_addend = (int)(long)(elf->symtab_start + ELF_R_SYM(r->r_info));
    + break;
    + case R_ARM_PC24:
    + /* From ARM ABI: ((S + A) | T) - P */
    + r->r_addend = (int)(long)(elf->hdr + elf->sechdrs[rsection].sh_offset +
    + (r->r_offset - elf->sechdrs[rsection].sh_addr));
    + break;
    + default:
    + return 1;
    + }
    + return 0;
    +}
    +
    static int addend_mips_rel(struct elf_info *elf, int rsection, Elf_Rela *r)
    {
    unsigned int r_typ = ELF_R_TYPE(r->r_info);
    @@ -1051,6 +1071,10 @@ static void check_sec_ref(struct module *mod, const char *modname,
    if (addend_386_rel(elf, i, &r))
    continue;
    break;
    + case EM_ARM:
    + if(addend_arm_rel(elf, i, &r))
    + continue;
    + break;
    case EM_MIPS:
    if (addend_mips_rel(elf, i, &r))
    continue;
    --
    1.5.0.6
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-07-17 16:23    [W:0.022 / U:2.452 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site