Messages in this thread Patch in this message | | | Date | Thu, 8 Jan 2004 17:10:06 +0300 | From | Ivan Kokshaysky <> | 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/
| |