lkml.org 
[lkml]   [2004]   [Jan]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 2.6] Relocation overflow with modules on Alpha
    On Mon, Jan 05, 2004 at 02:21:37AM +0100, Måns Rullgård wrote:
    > I compiled Linux 2.6.0 for Alpha, and it mostly works, except the
    > somewhat large modules. They fail to load with the message
    > "Relocation overflow vs section 17", or some other section number.

    This failure happens with GPRELHIGH relocation, which is *signed*
    short, but relocation overflow check in module.c doesn't take into
    account the sign extension.
    Appended patch should help.

    Ivan.

    --- 2.6/arch/alpha/kernel/module.c Wed May 28 01:05:20 2003
    +++ linux/arch/alpha/kernel/module.c Mon Aug 11 23:23:02 2003
    @@ -259,7 +259,7 @@ apply_relocate_add(Elf64_Shdr *sechdrs,
    *(u64 *)location = value;
    break;
    case R_ALPHA_GPRELHIGH:
    - value = (value - gp + 0x8000) >> 16;
    + value = (long)(value - gp + 0x8000) >> 16;
    if ((short) value != value)
    goto reloc_overflow;
    *(u16 *)location = value;
    -
    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: 2005-03-22 13:59    [W:5.425 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site